检索 ImageView 中 Drawable 尺寸的最佳方法是什么?
My ImageView
有一个初始化方法,我在其中创建ImageView
:
private void init() {
coverImg = new ImageView(context);
coverImg.setScaleType(ScaleType.FIT_START);
coverImg.setImageDrawable(getResources().getDrawable(R.drawable.store_blind_cover));
addView(coverImg);
}
在布局或测量过程中的某个时刻,我需要 Drawable 的精确尺寸来调整它周围的其余组件。
coverImg.getHeight()
and coverImg.getMeasuredHeight()
不返回我需要的结果,如果我使用coverImg.getDrawable().getBounds()
我在按比例缩放之前得到了尺寸ImageView
.
感谢您的帮助!
刚刚尝试过这个,它对我有用:
int finalHeight, finalWidth;
final ImageView iv = (ImageView)findViewById(R.id.scaled_image);
final TextView tv = (TextView)findViewById(R.id.size_label);
ViewTreeObserver vto = iv.getViewTreeObserver();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
public boolean onPreDraw() {
// Remove after the first run so it doesn't fire forever
iv.getViewTreeObserver().removeOnPreDrawListener(this);
finalHeight = iv.getMeasuredHeight();
finalWidth = iv.getMeasuredWidth();
tv.setText("Height: " + finalHeight + " Width: " + finalWidth);
return true;
}
});
The ViewTreeObserver
让您在绘制布局之前监视布局(即所有内容都已测量),从这里您可以从ImageView
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)