博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 自定义属性
阅读量:5809 次
发布时间:2019-06-18

本文共 1896 字,大约阅读时间需要 6 分钟。

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-->属性值

 

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

 

转载于:https://www.cnblogs.com/fwling/p/6287881.html

你可能感兴趣的文章
hdu 5400 Arithmetic Sequence
查看>>
Android 学习笔记 Contacts ContentResolver query、add、update、delete 参数详解
查看>>
jvm间歇性崩溃分析
查看>>
hdu 2669 Romantic
查看>>
JSP语法(二)
查看>>
如何做到input file中‘选择文件’的自定义
查看>>
npm ERR! cb() never called! 解决办法
查看>>
Web安全浅说
查看>>
Uber RIBs框架源码分析
查看>>
(译) js中的值相等和引用相等
查看>>
代码片段之jQuery控制input只能输入数字和两位小数
查看>>
input data size does not match net.inputs{1}.si...
查看>>
【Bugly干货分享】老司机教你 “飙” EventBus 3
查看>>
Reidis安装配置
查看>>
java Native Method初涉
查看>>
浏览器渲染原理、回流和重绘
查看>>
Oracle 误删数据恢复
查看>>
LAMP服务器环境之编译(部分)安装-php的fastcgi模式
查看>>
3389
查看>>
SQL Server 2008编程入门经典(第3版) 学习记录2
查看>>