在Android中,declare-styleable
用于定義自定義屬性集合,可以在布局文件和代碼中使用這些屬性。
首先,在res/values文件夾下創(chuàng)建一個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();
// 使用獲取到的屬性值進(jìn)行相應(yīng)操作
}
}
這樣就可以在自定義View中使用declare-styleable
定義的自定義屬性了。