在Android中,declare-styleable
用于定义自定义属性集合,可以在布局文件和代码中使用这些属性。
首先,在res/values文件夹下创建一个attrs.xml文件,定义declare-styleable
:
<resources>
<declare-styleable name="CustomView">
<attr name="customAttribute1" format="reference" />
<attr name="customAttribute2" format="boolean" />
<attr name="customAttribute3" format="string" />
</declare-styleable>
</resources>
然后,在布局文件中使用自定义属性:
<com.example.CustomView
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:customAttribute1="@drawable/icon"
app:customAttribute2="true"
app:customAttribute3="Hello World" />
最后,在自定义View的代码中获取这些属性值:
public class CustomView extends View {
public CustomView(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CustomView);
Drawable customAttribute1 = a.getDrawable(R.styleable.CustomView_customAttribute1);
boolean customAttribute2 = a.getBoolean(R.styleable.CustomView_customAttribute2, false);
String customAttribute3 = a.getString(R.styleable.CustomView_customAttribute3);
a.recycle();
// 使用获取到的属性值进行相应操作
}
}
这样就可以在自定义View中使用declare-styleable
定义的自定义属性了。