自定义控件_属性介绍
2016-07-14 17:16
120 查看
以下示例中代码均在values/attrs.xml 中定义,属性均可随意命名。
1. reference:参考某一资源ID。
示例:
<declare-styleable name = "ruiyi">
<attr name = "background" format = "reference" />
<attr name = "src" format = "reference" />
</declare-styleable> 2. color:颜色值。
示例:
<declare-styleable name = "ruiyi">
<attr name = "textColor" format = "color" />
</declare-styleable> 3. boolean:布尔值。
示例:
<declare-styleable name = "ruiyi">
<attr name = "focusable" format = "boolean" />
</declare-styleable> 4. dimension:尺寸值。
示例:
示例:
示例:
示例:
示例:
示例:
示例:
示例:
12.引用API变量。
示例:
<declare-styleable name="ruiyi">
<attr name="android:text1" />
<attr name="text2" format="string" />
</declare-styleable>ta.getString(R.styleable.ruiyi_android_text)
获取属性时有一点点区别:
定义时:
1-11 存在属性的自定义name 和指定的类型(format)
12 引用系统属性时,仅仅只有name,不能重复指定类型
引用时:
所以类型获取都可以借助TypedArray 读取,以12属性为例
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.ruiyi);
String text1 = ta.getString(R.styleable.ruiyi_android_text1); //系统属性
<pre name="code" class="java"> String text2 = ta.getInteger(R.styleable.ruiyi_text2); //自定义属性
ta.recycle();
}
就这样
1. reference:参考某一资源ID。
示例:
<declare-styleable name = "ruiyi">
<attr name = "background" format = "reference" />
<attr name = "src" format = "reference" />
</declare-styleable> 2. color:颜色值。
示例:
<declare-styleable name = "ruiyi">
<attr name = "textColor" format = "color" />
</declare-styleable> 3. boolean:布尔值。
示例:
<declare-styleable name = "ruiyi">
<attr name = "focusable" format = "boolean" />
</declare-styleable> 4. dimension:尺寸值。
示例:
<declare-styleable name = "ruiyi"> <attr name = "layout_width" format = "dimension" /> </declare-styleable>5. float:浮点值。
示例:
<declare-styleable name = "ruiyi"> <attr name = "fromAlpha" format = "float" /> <attr name = "toAlpha" format = "float" /> </declare-styleable>6. integer:整型值。
示例:
<declare-styleable name = "ruiyi"> <attr name = "frameDuration" format="integer" /> <attr name = "framesCount" format="integer" /> </declare-styleable>7. string:字符串。
示例:
<declare-styleable name = "ruiyi"> <attr name = "text" format = "string" /> </declare-styleable>8. fraction:百分数。
示例:
<declare-styleable name="ruiyi"> <attr name = "pivotX" format = "fraction" /> <attr name = "pivotY" format = "fraction" /> </declare-styleable>9. enum:枚举值。
示例:
<declare-styleable name="ruiyi"> <attr name="orientation"> <enum name="horizontal" value="0" /> <enum name="vertical" value="1" /> </attr> </declare-styleable>10. flag:位或运算。
示例:
<declare-styleable name="ruiyi"> <attr name="windowSoftInputMode"> <flag name = "stateUnspecified" value = "0" /> <flag name = "stateUnchanged" value = "1" /> <flag name = "stateHidden" value = "2" /> <flag name = "stateAlwaysHidden" value = "3" /> </attr> </declare-styleable>11.多类型。
示例:
<declare-styleable name = "ruiyi"> <attr name = "background" format = "reference|color" /> </declare-styleable>
12.引用API变量。
示例:
<declare-styleable name="ruiyi">
<attr name="android:text1" />
<attr name="text2" format="string" />
</declare-styleable>ta.getString(R.styleable.ruiyi_android_text)
获取属性时有一点点区别:
定义时:
1-11 存在属性的自定义name 和指定的类型(format)
12 引用系统属性时,仅仅只有name,不能重复指定类型
引用时:
所以类型获取都可以借助TypedArray 读取,以12属性为例
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.ruiyi);
String text1 = ta.getString(R.styleable.ruiyi_android_text1); //系统属性
<pre name="code" class="java"> String text2 = ta.getInteger(R.styleable.ruiyi_text2); //自定义属性
ta.recycle();
}
就这样
相关文章推荐
- (10)Hibernate一级缓存
- 第二次考试 (图论)第四题 货车运输
- 基于Scrapy框架的python网络爬虫学习(2)
- 单例模式
- ORIGIN 9.0 拟合曲线延伸
- 集合转换为Json数组
- HTML5笔记二:历史管理history
- UESTC - 149 解救小Q
- 【腾讯优测干货分享】Android5.0-6.0双卡适配指南
- jquery移动元素位置
- JS-正则表达式4
- 点击按扭后显示DIV,当然这个DIV 就显示在按扭旁边,当鼠标移动到DIV上时无变化,当鼠标移出DIV的时候,让DIV隐藏
- js轮播图代码分享
- 香蕉派 banana pi BPI-M64 四核心64位开源单板计算机 全志A64方案
- C# 线程同步
- 我们添加了两个短裤!
- 直方图均衡化
- Android开发,关于Canvas的使用,绘图的各种用法
- mongodb 数组内容匹配删除方法, $all 用法
- 转学习笔记:Caffe上配置和运行MNIST