栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

android开发教程之自定义属性用法详解

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

android开发教程之自定义属性用法详解

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

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

......


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

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

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

(1)属性定义:
复制代码 代码如下:

  


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

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

2.color:颜色值。

(1)属性定义:
复制代码 代码如下:


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

3.boolean:布尔值。

(1)属性定义:
复制代码 代码如下:


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

4.dimension:尺寸值。

(1)属性定义:
复制代码 代码如下:


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

5.float:浮点值。

(1)属性定义:
复制代码 代码如下:




(2)属性使用:
复制代码 代码如下:
android:fromAlpha="1.0"
android:toAlpha="0.7"
/>

6.integer:整型值。

(1)属性定义:
复制代码 代码如下:








(2)属性使用:
复制代码 代码如下:
xmlns: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)属性定义:
复制代码 代码如下:



(2)属性使用:
复制代码 代码如下:
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:apiKey="0jOkQ80oD1JL9C6HAja99uGXCRiS2CGjKO_bc_g"
/>

8.fraction:百分数。

(1)属性定义:
复制代码 代码如下:








(2)属性使用:
复制代码 代码如下:
xmlns: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)属性定义:
复制代码 代码如下:






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

10.flag:位或运算。

(1)属性定义:
复制代码 代码如下:














(2)属性使用:
复制代码 代码如下:
android:name=".StyleAndThemeActivity"
android:label="@string/app_name"
android:windowSoftInputMode="stateUnspecified|stateUnchanged | stateHidden">





特别要注意:

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

(1)属性定义:
复制代码 代码如下:



(2)属性使用:
复制代码 代码如下:
android: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中封装的值到底是干什么的了,从而可以对这些数据进行应用。

AttributeSet就相当于一盒糖,TypedArray就相当于这盒糖上的标签说明,告诉用户每个糖的口味等。这盒糖有什么口味是由用户自己的styleable文件里面的内容来决定的。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/164629.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号