Android 自定义属性

Posted Fwl的小花园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 自定义属性相关的知识,希望对你有一定的参考价值。

android自定义属性我们自定义控件中是经常用到的,自定义属性可以在我们的xml布局文件中使用,这样可以减少代码量,也增加了代码的健壮性和可阅读性。所以,在掌握自定义控件之前要首先掌握好怎样自定义属性。

首先来看看自定属性都有哪些?

values/attrs.xml 中可定义的属性类型有如下几个:

1. reference:参考某一资源ID。<attr name = "background" format = "reference" />

2. color:颜色值。<attr name = "textColor" format = "color" />

3. boolean:布尔值<attr name = "focusable" format = "boolean" />

4. dimension:尺寸值。<attr name = "layout_width" format = "dimension" />

5. float:浮点值。<attr name = "fromAlpha" format = "float" />

6. integer:整型值<attr name = "frameDuration" format="integer" />

7. string:字符串。<attr name = "text" format = "string" />

8. fraction:百分数<attr name = "pivotX" format = "fraction" /><attr name = "pivotY" format = "fraction" />

9. enum:枚举值

<attr name="orientation"><enum name="horizontal" value="0" /><enum name="vertical" value="1" /></attr>

10. flag:位或运算<attr name="windowSoftInputMode"><flag name = "stateUnspecified" value = "0" /><flag name = "stateUnchanged" value = "1" /></attr>

11.多类型。<attr name = "background" format = "reference|color" />

以上的所有属性中,属性名称(name)可以随便命名。 format 就很简单了,表示该属性是什么类型的。

1.  values/attrs.xml

<?xml version="1.0" encoding="utf-8"?>

<resources>

<declare-styleable name="custom_view">//这是属性集的名字,在我们java中找到属性的时候需要用到。

<attr name="custom_id" format="integer"/>属性名和属性类型,属性名在我们xml中和java文件中都可以用到

<attr name="textSize" format="dimension"/>

</declare-styleable>

</resource>

2.   Java文件中找到属性

TypedArray a = context.obtainStyledAttributes(attrs,R.styleable.custom_view);//R.styleable.custom_view-->对应的是我们的attrs.xml,中的 declare-styleable 节点的 name

mSrc = a.getDrawable(R.styleable.custom_view_textsize);//这里获取属性的时候就好像json一样根据不同的类型进行get

3.   xml中引用

首先要定义名称(app)和引入包名(com.fwl.myseekbar)/apk/res-->这一段也不要忘记了,也可以直接使用auto

xmlns:app="http://schemas.android.com/apk/res/com.fwl.myseekbar"

使用:

app:endValue="300"

app-->名字、endValue-->属性名、300-->属性值

 

以上只是简单的介绍了自定义属性的一些东西,实际使用还要再斟酌斟酌。

 

以上是关于Android 自定义属性的主要内容,如果未能解决你的问题,请参考以下文章

Android自定义View(二深入解析自定义属性)

Android自定义ViewGroup及自定义属性

Android - 具有自定义属性的自定义 UI

Android 自定义属性

Android自定义View(深入解析自定义属性)

Android 自定义ViewViewGroup和自定义属性