你以一个20年Android专家的身份,帮我写一个工具类,要求传进一个view返回测量的宽高
时间: 2024-03-13 09:48:11 浏览: 13
好的,可以使用如下代码实现:
```java
public class ViewUtils {
public static int[] measureView(View view) {
int[] size = new int[2];
int widthMeasureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
int heightMeasureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
view.measure(widthMeasureSpec, heightMeasureSpec);
size[0] = view.getMeasuredWidth();
size[1] = view.getMeasuredHeight();
return size;
}
}
```
调用方法如下:
```java
int[] size = ViewUtils.measureView(view);
int measuredWidth = size[0];
int measuredHeight = size[1];
```
这个工具类的实现非常简单,就是通过调用 `View` 的 `measure()` 方法得到测量的宽高,并返回一个包含宽高的数组。注意,这个工具类并没有考虑 `View` 的 `margin`、`padding` 等因素,如果需要考虑这些因素,可以在 `measure()` 方法之前设置 `View` 的 `margin`、`padding` 等属性。