前言
Android本身给我们提供了很多的属性,像我们经常要用到的:android:layout_width="match_parent"、android:layout_height="match_parent"
等等……
但是有时候,我们需要用到自定义的View,自定义View可以在代码中使用,也可以在XML界面布局中使用,那么我们就可以给我们的自定义View增加只属于它自己的属性,通过这些属性可以使我们更好的控制View组件的外观以及行为。这一篇主要讲解下自定义属性的运用。
定义属性(Attribute)资源
属性资源文件放在/res/values目录下,文件名字是:attrs.xml,由于IDE创建时没有帮我们自动生成这个文件,所以我们需要自己创建attrs.xml文件。attrs.xml文件的根元素是<resources../>
元素,该元素下包含了如下两个子元素:
* attr子元素:定义一个属性。
* declare-styleable子元素:定义一个styleable对象,每个对象都是一组attr属性的集合。
下面以一个自定义默认带动画的图片来演示下自定义属性的运用。
实例
定义XML属性资源
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="duration"/>
<declare-styleable name="AlphaImageView">
<attr name="duration"/>
</declare-styleable>
</resources>
上面的属性资源文件中,定义了一个duration的属性,定义了这个属性之后,这个属性到底在哪里使用就不归属性资源文件管了,属性资源文件中的属性到底可以发挥什么作用,完全由自定义View中的代码实现。
注意:在属性资源文件中定义
<declare-styleable.../>
元素时,可以在其内部直接使用<attr...