Android自定义属性时typedArray的使用方法
2016-04-19 16:52
489 查看
自己定义的布局,需要自己自定义view,通常继承View然后重写构造方法以及onDraw等函数。同时,我们也可以自定义属性。步骤如下:
在项目文件res/value下面创建一个attr.xml文件,该文件包含若干个attr的集合,例如:
<Resources>
<declare-styleable name="MyView">
<attr name="myTextSize"format="dimension"/>
<attr name="myColor"format="color"/>
</declare-styleable>
</Resources>
其中resource是根标签,可以在里面定义若干个declare-styleable,<declare-styleable
name=”myView“>
中name定义了变量名称,下面可以再定义多个属性,针对<attr name=”myTextSize”
format=”dimension”/>来说,其属性的名称为”myTextSize“,format指定了该属性类型为dimension,只能表示字体的大小。
Format还可以指定其他的类型,比8如:
Reference
表示引用,参考某一资源的ID。
String
表示字符串
Color
表示颜色值
Dimension
表示尺寸值
Boolean表示布尔值
Integer
表示整型值
Float
表示浮点值
Fraction
表示百分数
Enum
表示枚举值
Flag
表示位运算
2.在使用该自定义view的布局文件中加入如下一行:
xmlns :app=”http://schemas.android.com/apk/res/com...“
注意(后面的com.什么为activity的包名)
3.在自定义view的代码中引入自定义属性。修改构造函数
Context通过调用obtainStyledAttributes方法来获取一个TypeArray,然后又该TypeArray来对属性进行设置,
obtainStyledAttributes方法有三个,我们常用的是有一个参数的obtainStyledAttributes(int[] attrs),其参数直接styleable中获得。
TypedArray a = context.obtainStyledAttributes(attrs ,R.Styleable.MyView);
调用结束后务必调用recycle()方法。否则这次的设定会影响下次的使用。
注意:属性定义时可以指定多种类型值:
1.属性定义:
<declare-styleable name=”名称”>
<attr name=”background”
format=”reference|color”/>
</declare-styleable>
2.属性使用:
<ImageView
android:layout_width =
“42dip”
android:layout_height=”42dip”
android:background=”@drawable/图片id|颜色#。。。”/>
在项目文件res/value下面创建一个attr.xml文件,该文件包含若干个attr的集合,例如:
<Resources>
<declare-styleable name="MyView">
<attr name="myTextSize"format="dimension"/>
<attr name="myColor"format="color"/>
</declare-styleable>
</Resources>
其中resource是根标签,可以在里面定义若干个declare-styleable,<declare-styleable
name=”myView“>
中name定义了变量名称,下面可以再定义多个属性,针对<attr name=”myTextSize”
format=”dimension”/>来说,其属性的名称为”myTextSize“,format指定了该属性类型为dimension,只能表示字体的大小。
Format还可以指定其他的类型,比8如:
Reference
表示引用,参考某一资源的ID。
String
表示字符串
Color
表示颜色值
Dimension
表示尺寸值
Boolean表示布尔值
Integer
表示整型值
Float
表示浮点值
Fraction
表示百分数
Enum
表示枚举值
Flag
表示位运算
2.在使用该自定义view的布局文件中加入如下一行:
xmlns :app=”http://schemas.android.com/apk/res/com...“
注意(后面的com.什么为activity的包名)
3.在自定义view的代码中引入自定义属性。修改构造函数
Context通过调用obtainStyledAttributes方法来获取一个TypeArray,然后又该TypeArray来对属性进行设置,
obtainStyledAttributes方法有三个,我们常用的是有一个参数的obtainStyledAttributes(int[] attrs),其参数直接styleable中获得。
TypedArray a = context.obtainStyledAttributes(attrs ,R.Styleable.MyView);
调用结束后务必调用recycle()方法。否则这次的设定会影响下次的使用。
注意:属性定义时可以指定多种类型值:
1.属性定义:
<declare-styleable name=”名称”>
<attr name=”background”
format=”reference|color”/>
</declare-styleable>
2.属性使用:
<ImageView
android:layout_width =
“42dip”
android:layout_height=”42dip”
android:background=”@drawable/图片id|颜色#。。。”/>
相关文章推荐
- android studio插件
- android 打开各种文件(setDataAndType)
- Android酷炫开源框架
- android 怎么获得星期几?
- Android官方开发文档Training系列课程中文版:调用相机之简单拍照
- Android官方数据绑定框架DataBinding
- android蓝牙实现简单的聊天的功能
- android线程相关
- Android 天气预报(2)
- Android DataBinding
- Android窗口类型有关
- Android 驱动开发系列三
- android修炼大法
- 53. Android常用工具类
- 获取android手机的相关信息
- android 沉浸式状态栏(像ios那样的状态栏与应用统一颜色样式)
- Android App签名打包 与 SDK开发文档
- android:name属性加不加“.”
- Android事件分发
- android ant 最简单的打包签名,混淆方法