方法1,通过Andorid中LayoutParams来获取:
LayoutParams相当于一个Layout的信息包,它封装了Layout的位置、高、宽等信息。假设在屏幕上一块区域是由一个Layout占领的,如果将一个View添加到一个Layout中,最好告诉Layout用户期望的布局方式,也就是将一个认可的layoutParams传递进去。
LayoutParams lp = imageView.getLayoutParams();
/* 获取ImageView的实际宽度* */
int width = imageView.getWidth();
int height = imageView.getHeight();
方法2,通过反射获取,这种方法不用考虑兼容API的问题:
定义获取方法:
private static int getViewFieldValue(Object obj, String fieldName) {
int value = 0;
try {
Field field = ImageView.class.getDeclaredField(fieldName);
field.setAccessible(true);
int fieldValue = field.getInt(obj);
if (fieldValue > 0 && fieldValue < Integer.MAX_VALUE) {
value = fieldValue;
}
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return value;
}
然后要获取ImageView中图片的宽高:
宽度: int width = getViewFieldValue(imageView, "mMaxWidth");
高度:int height=getViewFieldValue(imageView, "mMaxHeight");
本文介绍了在Android开发中获取ImageView尺寸的两种方法:一种是使用LayoutParams,另一种是通过反射机制。LayoutParams方法直接利用Android系统提供的API进行操作,而反射方法则避免了不同API版本间的兼容性问题。

1691

被折叠的 条评论
为什么被折叠?



