android imageView获取宽度
时间: 2024-10-24 11:11:59 浏览: 17
在Android中,如果你想要获取ImageView组件的宽度,可以使用以下几种方法:
1. 直接获取布局宽度:如果你的ImageView是在一个LinearLayout、RelativeLayout或者其他布局中,你可以使用`imageview.getWidth()`来获取它的实际宽度。但这只会在视图可见并且已经测量过尺寸后返回值。
```java
ViewGroup.LayoutParams layoutParams = (ViewGroup.LayoutParams) imageView.getLayoutParams();
int width = layoutParams.width;
```
2. 获取资源宽高:如果ImageView设置了具体的图片资源,你可以先从Resource文件获取图片原始的宽度,然后除以density ratio得到像素值。
```java
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int dpWidth = BitmapFactory.decodeResource(getResources(), R.drawable.your_image).getWidth() / metrics.density;
```
3. 使用测量方法:如果你想在运行时动态获取,可以在ImageView的onMeasure()方法回调中获取。
```java
imageView.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
int measuredWidth = imageView.getMeasuredWidth();
```
阅读全文