上一回我们说到,我们为自定义控件定义自定义属性的时候,用到了一个TypedArray类,用它获取属性时涉及到各种类型,这里我就总结一下究竟有多少类型。
1.属性类型的取值
属性类型 | 获取方法 | 说明 |
boolean | getBoolean | 布尔值。取值为true或false |
integer | getInt | 整型值 |
float | getFloat | 浮点值 |
string | getString | 字符串 |
color | getColor | 颜色值。取值为开头带#的六位或八位十六进制数 |
dimension | getDimension | 尺寸值。取值为末尾带dp的尺寸数值 |
dimension | getDimensionPixelSize | 字体大小。取值为末尾带px的尺寸数值 |
fraction | getFraction | 百分数。取值为末尾带%的百分数 |
reference | getResourceId | 参考某一资源。取值如@drawable/ic_launcher |
enum | getInt | 枚举值 |
flag | getInt | 标志位 |
2.关于enum和flag类型
枚举类型的属性常见的有LinearLayout的orientation和ImageView的scaleType;标志类型的属性常见的有TextView的gravity和EditText的inputType。
下面是枚举类型的属性声明例子。
<declare-styleable name="CustomPagerTab">
<attr name="customOrientation">
<enum name="horizontal" value="0"/>
<enum name="vertical" value="1"/>
</attr>
</declare-styleable>
下面是标志类型的属性声明例子。
<declare-styleable name="CustomPagerTab">
<attr name="customGravity">
<flag name="center" value="0"/>
<flag name="left" value="1"/>
<flag name="top" value="2"/>
<flag name="right" value="3"/>
<flag name="bottom" value="4"/>
</attr>
</declare-styleable>