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

Android 如何获得任何给定imageView的宽度和高度?,android,imageview,android-imageview,bitmapimage,bitmapfactory,Android,Imageview,Android Imageview,Bitmapimage,Bitmapfactory,我正在尝试缩放和旋转图像。由于方法Bitmap.createScaledBitmap()需要指定所需的宽度和高度,因此我希望将所需的宽度和高度设置为与我的imageView的宽度和高度完全相同 现在,如何获得任何给定的imageView的宽度和高度? 鉴于imageView最初是空的,但只是用findViewById()定义的,因此必须等待视图布局为具有尺寸标注。您可以通过ViewTreeObserver实现这一点: final ImageView view = ...; view.getVie

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

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

定义的,因此必须等待视图布局为具有尺寸标注。您可以通过
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()

您是否尝试过
yourmageview.getHeight()
?它返回什么,0?可能是重复的,因为当我使用getheight作为方法“bitmap.CreateScaledBitmap”的参数时,imageView最初为空“没有显示图像”,logcat说高度应该大于0