转载请注明出处:http://blog.csdn.net/mybeta/article/details/39962235
我们可以自定义View,当然也可以自定义View的属性。下面就从多个方面来介绍自定义View属性的使用。
1. 用法。
在使用自定义属性之前,我们需要定义属性。一般我们会按下面的步骤来进行:
首先在res/values目录下新建一个attrs.xml文件。
然后在该文件中写入下面的内容:【这只是一个简单的示例,具体的做法我们会在接下来讲到。】
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="Test">
<attr name="test1" format="string" />
<attr name="test2" format="integer" />
<attr name="test3" format="reference" />
</declare-styleable>
</resources>
其中attr标签就是我们自定义的属性了,name是属性名称,format是该属性可以取值的类型。
最后就可以在XML文件使用这些自定义属性,并且在代码中拿到了。
2. format类型。
在上面提到了attr标签中,有一个format属性,我们来看下format到底可以取哪些值。
由于在官方文档中没有找到太多的关于自定义属性的内容,所以我们通过源码来学习这一块。拿到系统自带的attrs.xml,在..sdk\platforms\android-x\data\res\values下面可以找到该文件。以下的定义都是参考自该文件。
reference
○ 定义:引用一个resource id,比如:@color/xxx,@layout/xxx,@drawable/xxx等等。
<attr name="textAppearance" format="reference" />
○ 使用:
android:background="@drawable/ic_launcher"
color
○ 定义:颜色值。两种使用形式:#FC5A96和@color/xxx。
<attr name="cacheColorHint" format="color" />
○ 使用:
android:cacheColorHint="#00000000"
boolean
○ 定义:取值:true or false。
<attr name="clickable" format="boolean" />
○ 使用:
android:clickable="true"
dimension
○ 定义:
<attr name="padding" format="dimension" />
○ 使用:
android:padding="10dp"
float
○ 定义:
<attr name="layout_weight" format="float" />
integer
○ 定义:该类型下有一个可选的attribute“
min”,代表配置该属性时可取的最小值,如果在XML文件中设置的值比min值更小,编译器会报错。
注意,仅仅在integer下才有min属性,在混合类型下(such as“integer|resource.”),min属性不可用。
<attr name="progress" format="integer" />
string
○ 定义:可选属性:localization。使用“xxx”和@string/xxx的形式都可以。
<attr name="onClick" format="string" />
fraction
○ 定义:百分比。x% or x%p (relative to parent).
<attr name="pivotX" format="float|fraction" />
</