如何获得任何给定imageView的宽度和高度?

时间:2014-06-12 14:59:30

标签: android imageview android-imageview bitmapimage bitmapfactory

我正在尝试缩放和旋转图像。由于方法Bitmap.createScaledBitmap()要求指定所需的宽度和高度,我想将所需的宽度和所需的高度设置为与imageView的宽度和高度完全相同。

现在,我如何获得任何给定imageView的宽度和高度? 鉴于imageView最初为空,但仅使用findViewById()

定义

1 个答案:

答案 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()