登录 立即注册
安币:
查看: 75|回复: 5
打印 上一主题 下一主题

| android开发教程之自定义属性用法详解,android开发工具

[复制链接]

225

主题

275

帖子

514

安币

手工艺人

跳转到指定楼层
楼主
发表于 2018-2-9 15:19:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本文来源:http://www.oneupabq.com/a/www.panjiayuan.com/

重庆时时彩独胆倍投 www.oneupabq.com,多年的德育实践表明,要实现立德树人,必须价值先行。于是,近年来班额问题成为我国政府和学者思考的热点问题。


            

        最近项目中经常需要用到自定义控件,因此自定义属性也是经常要用到的,在此说明一下自定义属性的用法:

        自定义属性都存在于/value/attr.xml文件中,以如下格式存在。复制代码 代码如下:<resource>

        <declare-styleable name="自定义属性名称">

        <attr name="属性名称" format="属性种类"/>

        ......

        </declare-styleable>

        </resource>

        对于自定义属性中的format的值及其含义如下:

        format属性值:reference 、color、boolean、dimension、float、integer、string、fraction、enum、flag

        1. reference:参考某一资源id。

        (1)属性定义:复制代码 代码如下:<declare-styleable name = "名称">

         <attr name = "background" format = "reference" />

        </declare-styleable>

        (2)属性使用:复制代码 代码如下:<imageview

        android:layout_width="42dip"android:layout_height="42dip"android:background="@drawable/图片id"/>

        2.color:颜色值。

        (1)属性定义:复制代码 代码如下:<declare-styleablename="名称">

        <attrname="textcolor"format="color"/>

        </declare-styleable>

        (2)属性使用:复制代码 代码如下:<textviewandroid:layout_width="42dip"android:layout_height="42dip"android:textcolor="#00ff00"/>

        3.boolean:布尔值。

        (1)属性定义:复制代码 代码如下:<declare-styleablename="名称">

        <attrname="focusable"format="boolean"/>

        </declare-styleable>

        (2)属性使用:复制代码 代码如下:<buttonandroid:layout_width="42dip"android:layout_height="42dip"android:focusable="true"/>

        4.dimension:尺寸值。

        (1)属性定义:复制代码 代码如下:<declare-styleablename="名称">

        <attrname="layout_width"format="dimension"/>

        </declare-styleable>

        (2)属性使用:复制代码 代码如下:<buttonandroid:layout_width="42dip"android:layout_height="42dip"/>

        5.float:浮点值。

        (1)属性定义:复制代码 代码如下:<declare-styleablename="alphaanimation"><attrname="fromalpha"format="float"/><attrname="toalpha"format="float"/></declare-styleable>

        (2)属性使用:复制代码 代码如下:<alphaandroid:fromalpha="1.0"android:toalpha="0.7"/>

        6.integer:整型值。

        (1)属性定义:复制代码 代码如下:<declare-styleablename="animatedrotatedrawable"><attrname="visible"/><attrname="frameduration"format="integer"/><attrname="framescount"format="integer"/><attrname="pivotx"/><attrname="pivoty"/><attrname="drawable"/></declare-styleable>

        (2)属性使用:复制代码 代码如下:<animated-rotatexmlns:android="http://schemas.android.com/apk/res/android"android:drawable="@drawable/图片id"android:pivotx="50%"android:pivoty="50%"android:framescount="12"android:frameduration="100"/>

        7.string:字符串。

        (1)属性定义:复制代码 代码如下:<declare-styleablename="mapview"><attrname="apikey"format="string"/></declare-styleable>

        (2)属性使用:复制代码 代码如下:<com.google.android.maps.mapviewandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:apikey="0jokq80od1jl9c6haja99ugxcris2cgjko_bc_g"/>

        8.fraction:百分数。

        (1)属性定义:复制代码 代码如下:<declare-styleablename="rotatedrawable"><attrname="visible"/><attrname="fromdegrees"format="float"/><attrname="todegrees"format="float"/><attrname="pivotx"format="fraction"/><attrname="pivoty"format="fraction"/><attrname="drawable"/></declare-styleable>

        (2)属性使用:复制代码 代码如下:<rotatexmlns:android="http://schemas.android.com/apk/res/android"  android:interpolator="@anim/动画id"

        android:fromdegrees="0"android:todegrees="360"

        android:pivotx="200%"

        android:pivoty="300%"android:duration="5000"

        android:repeatmode="restart"

        android:repeatcount="infinite"

        />

        9.enum:枚举值。

        (1)属性定义:复制代码 代码如下:<declare-styleablename="名称"><attrname="orientation"><enumname="horizontal"value="0"/><enumname="vertical"value="1"/></attr></declare-styleable>

        (2)属性使用:复制代码 代码如下:<linearlayoutxmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"></linearlayout>

        10.flag:位或运算。

        (1)属性定义:复制代码 代码如下:<declare-styleablename="名称"><attrname="windowsoftinputmode"><flagname="stateunspecified"value="0"/><flagname="stateunchanged"value="1"/><flagname="statehidden"value="2"/><flagname="statealwayshidden"value="3"/><flagname="statevisible"value="4"/><flagname="statealwaysvisible"value="5"/><flagname="adjustunspecified"value="0x00"/><flagname="adjustresize"value="0x10"/><flagname="adjustpan"value="0x20"/><flagname="adjustnothing"value="0x30"/></attr></declare-styleable>

        (2)属性使用:复制代码 代码如下:<activityandroid:name=".styleandthemeactivity"android:label="@string/app_name"android:windowsoftinputmode="stateunspecified|stateunchanged | statehidden"><intent-filter><actionandroid:name="android.intent.action.main"/><categoryandroid:name="android.intent.category.launcher"/></intent-filter></activity>

        特别要注意:

        属性定义时可以指定多种类型值。

        (1)属性定义:复制代码 代码如下:<declare-styleablename="名称"><attrname="background"format="reference|color"/></declare-styleable>

        (2)属性使用:复制代码 代码如下:<imageviewandroid:layout_width="42dip"android:layout_height="42dip"android:background="@drawable/图片id|#00ff00"/>

        下面说说attributeset与typedarray在自定义控件中的作用:

        attributeset的作用就是在控件进行初始化的时候,解析布局文件中该控件的属性(keyeg:background)与该值(valueeg:@drawable/icon)的信息封装在attributeset中,传递给该控件(view)的构造函数。对于非android自带的属性,在view类中处理时是无法识别的,因此需要我们自己解析。所以这就要用到另外一个类typedarray。在attributeset中我们有属性名称,有属性值,但是控件如何知道哪个属性代表什么意思呢?这个工作就由typedarray来做了。typedarray对象封装了/values/attrs.xml中的styleable里定义的每个属性的类型信息,通过typedarray我们就可以知道attributeset中封装的值到底是干什么的了,从而可以对这些数据进行应用。



        
分享到:  QQ好友和群 QQ空间 微信
收藏收藏 支持支持 反对反对

手工艺人

沙发
发表于 2018-2-11 05:36:17 | 只看该作者
支持,感谢,祝巴士越来越好~

7

主题

9368

帖子

2422

安币

Android大神

Rank: 6Rank: 6

板凳
发表于 2018-2-12 05:26:11 | 只看该作者
楼主威武,以后多发干货,多办活动~!

85

主题

9231

帖子

2286

安币

Android大神

Rank: 6Rank: 6

地板
发表于 7 天前 | 只看该作者
楼主威武,以后多发干货,多办活动~!

62

主题

9242

帖子

1015

安币

Android大神

学海无涯

Rank: 6Rank: 6

QQ达人

5#
发表于 7 天前 | 只看该作者
不错不错,楼主辛苦了。。。

1

主题

8834

帖子

2656

安币

Android大神

Rank: 6Rank: 6

6#
发表于 7 天前 | 只看该作者
每次我都积极回帖的,想要安币~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站长推荐

通过邮件订阅最新安卓weekly信息
上一条 /4 下一条

下载安卓巴士客户端

全国最大的安卓开发者社区
联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| 下载客户端|申请友链|手机版|站点统计|重庆时时彩独胆倍投 ( 粤ICP备15117877号 )

快速回复 返回顶部 返回列表
小说 小说 小说 小说 小说 小说
小说 小说 小说 小说 小说 小说
小说 小说 小说 小说 小说 小说
北京pk10软件高命中率 河北十一选五的预测号 上上签娱乐官方 深圳风采 香港赛马会公开会员料
多乐彩封账号 秒速赛车3-8码技巧 天天彩选4开奖结果查询 五分彩开奖号码 江苏11选五开奖结果