Android 自定义View 之 自定义View属性

本文介绍了Android中自定义View的属性设置,包括用法、format类型、命名空间、处理属性名冲突、共用属性和系统属性的利用,详细阐述了自定义View属性的各个方面。
摘要由CSDN通过智能技术生成

转载请注明出处:http://blog.csdn.net/mybeta/article/details/39962235


我们可以自定义View,当然也可以自定义View的属性。下面就从多个方面来介绍自定义View属性的使用。


1. 用法。


在使用自定义属性之前,我们需要定义属性。一般我们会按下面的步骤来进行:

首先在res/values目录下新建一个attrs.xml文件。

然后在该文件中写入下面的内容:【这只是一个简单的示例,具体的做法我们会在接下来讲到。】
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <declare-styleable name="Test">
        <attr name="test1" format="string" />
        <attr name="test2" format="integer" />
        <attr name="test3" format="reference" />
    </declare-styleable>

</resources>

其中attr标签就是我们自定义的属性了,name是属性名称,format是该属性可以取值的类型。

最后就可以在XML文件使用这些自定义属性,并且在代码中拿到了。


2. format类型。


在上面提到了attr标签中,有一个format属性,我们来看下format到底可以取哪些值。

由于在官方文档中没有找到太多的关于自定义属性的内容,所以我们通过源码来学习这一块。拿到系统自带的attrs.xml,在..sdk\platforms\android-x\data\res\values下面可以找到该文件。以下的定义都是参考自该文件。

reference
○ 定义:引用一个resource id,比如:@color/xxx,@layout/xxx,@drawable/xxx等等。
<attr name="textAppearance" format="reference" />
○ 使用:
android:background="@drawable/ic_launcher"

color
○ 定义:颜色值。两种使用形式:#FC5A96和@color/xxx。
<attr name="cacheColorHint" format="color" />
○ 使用:
android:cacheColorHint="#00000000"

boolean
○ 定义:取值:true or false。
<attr name="clickable" format="boolean" />
○ 使用:
android:clickable="true"

dimension
○ 定义:
<attr name="padding" format="dimension" />
○ 使用:
android:padding="10dp"

float
○ 定义:
<attr name="layout_weight" format="float" />

integer
○ 定义:该类型下有一个可选的attribute“ min”,代表配置该属性时可取的最小值,如果在XML文件中设置的值比min值更小,编译器会报错。 注意,仅仅在integer下才有min属性,在混合类型下(such as“integer|resource.”),min属性不可用
<attr name="progress" format="integer" />

string
○ 定义:可选属性:localization。使用“xxx”和@string/xxx的形式都可以。
<attr name="onClick" format="string" />

fraction
○ 定义:百分比。x% or x%p (relative to parent).
<attr name="pivotX" format="float|fraction" />

</
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值