1.查看源码,定义属性时候做法
sdk所在目录\platforms\android-16\data\res\values\attrs.xml
TextView布局属性:
<resource>
<declare-styleable name="TextView">
<attr name="text" format="string"/>
</declare-styleable>
<resource>
2.给自己定义的View定义属性,工程res\values\attrs.xml
在values中创建attrs.xml
<resource>
<declare-styleable name="全类名">
<attr name="属性名" format="属性类型"/>
<attr name="test" format="string"/>
</declare-styleable>
<resource>
3.自定义属性的使用
定义命名空间
demo替换掉原有android
自己的包名替换掉了android,代表当前应用自定义属性
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:demo="http://schemas.android.com/apk/res/包名"
在布局中使用:demo:test="测试"
4.获取属性值
在有两个参数或者三个参数的构造方法中写以下代码,最好是在有三个参数的构造方法中写。
//通过属性索引获取属性名称&属性值
for(int i=0;i<attrs.getAttributeCount();i++){
//获取属性名
Log.i(tag, "name = "+attrs.getAttributeName(i));
//获取属性值
Log.i(tag, "value = "+attrs.getAttributeValue(i));
Log.i(tag, "分割线 ================================= ");
}
//通过属性获取属性名称&名空间
命名空间="http://schemas.android.com/apk/res/包名"
mDestitle = attrs.getAttributeValue(命名空间, "属性名");