我正在尝试缩放和旋转图像。由于方法Bitmap.createScaledBitmap()
要求指定所需的宽度和高度,我想将所需的宽度和所需的高度设置为与imageView
的宽度和高度完全相同。
现在,我如何获得任何给定imageView
的宽度和高度?
鉴于imageView
最初为空,但仅使用findViewById()
答案 0 :(得分:0)
您必须等到视图布局为具有尺寸。您可以使用ViewTreeObserver
:
final ImageView view = ...;
view.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener()
{
@Override
@SuppressLint("NewApi")
@SuppressWarnings("deprecation")
public void onGlobalLayout()
{
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
getViewTreeObserver().removeOnGlobalLayoutListener(this);
else
getViewTreeObserver().removeGlobalOnLayoutListener(this);
// width and height are available here.
}
});
另一个选择是让您自己的类派生自ImageView
并覆盖onLayout()