android attributeset 工具类,android – 如何将AttributeSet传递给自定义视图
时间: 2024-05-12 21:15:33 浏览: 171
android 一些工具类汇总
AttributeSet 工具类是 Android 中用于解析 XML 布局文件中的属性集合的工具类,它包含了一系列键值对,每个键值对表示一个 XML 布局文件中的属性。
在自定义视图的构造函数中,你可以通过 AttributeSet 参数获取 XML 布局文件中的属性集合。例如:
```java
public class CustomView extends View {
public CustomView(Context context, AttributeSet attrs) {
super(context, attrs);
// 在这里处理 AttributeSet 中的属性
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.CustomView);
int customAttrValue = typedArray.getInteger(R.styleable.CustomView_custom_attr, 0);
typedArray.recycle();
}
}
```
在这个例子中,我们通过 `context.obtainStyledAttributes()` 方法获取了 AttributeSet 中名为 `custom_attr` 的整型属性。注意,在使用完 TypedArray 后,需要调用 `recycle()` 方法将其回收。
在 XML 布局文件中,你需要为自定义视图定义属性并赋值。例如:
```xml
<com.example.CustomView
android:id="@+id/customView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:custom_attr="42" />
```
在这个例子中,我们为自定义视图定义了一个名为 `custom_attr` 的属性,并将其值设置为 42。
要让自定义视图支持自定义属性,你还需要在 attrs.xml 文件中定义属性集合。例如:
```xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="CustomView">
<attr name="custom_attr" format="integer" />
</declare-styleable>
</resources>
```
在这个例子中,我们定义了一个名为 `CustomView` 的属性集合,并为其添加了一个名为 `custom_attr` 的整型属性。
这样就可以在自定义视图中使用 AttributeSet 了。
阅读全文