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