Android View自定义参数declare-styleable怎么使用

avatar
作者
筋斗云
阅读量:0

在Android中,可以使用declare-styleable来定义自定义View的属性。declare-styleable是一个XML标签,用于定义自定义View的属性集合。

以下是declare-styleable的使用步骤:

  1. res/values/attrs.xml文件中创建一个declare-styleable标签,例如:
<resources>     <declare-styleable name="MyCustomView">         <attr name="titleText" format="string" />         <attr name="subtitleText" format="string" />         <attr name="titleTextColor" format="color" />         <attr name="subtitleTextColor" format="color" />     </declare-styleable> </resources> 
  1. 在自定义的View类中,使用obtainStyledAttributes方法获取属性值,例如:
public class MyCustomView extends View {     private String titleText;     private String subtitleText;     private int titleTextColor;     private int subtitleTextColor;          public MyCustomView(Context context, AttributeSet attrs) {         super(context, attrs);                  TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MyCustomView);                  titleText = a.getString(R.styleable.MyCustomView_titleText);         subtitleText = a.getString(R.styleable.MyCustomView_subtitleText);         titleTextColor = a.getColor(R.styleable.MyCustomView_titleTextColor, Color.BLACK);         subtitleTextColor = a.getColor(R.styleable.MyCustomView_subtitleTextColor, Color.GRAY);                  a.recycle();     }          // ... } 

在上面的示例中,obtainStyledAttributes方法获取到了在attrs.xml中定义的属性值,并将其赋值给titleTextsubtitleTexttitleTextColorsubtitleTextColor

  1. 在布局文件中使用自定义View,并设置属性值,例如:
<com.example.MyCustomView     android:layout_width="wrap_content"     android:layout_height="wrap_content"     app:titleText="Title"     app:subtitleText="Subtitle"     app:titleTextColor="#FF0000"     app:subtitleTextColor="#00FF00" /> 

在上面的示例中,通过app:前缀来设置自定义属性的值。

这样,就可以通过declare-styleable来定义和使用自定义View的属性了。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!