Android 自定义控件的属性使用,精心整理

/>

3.boolean:布尔值。

(1)属性定义:

复制代码代码如下:

<declare-styleablename=“名称”>

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

(2)属性使用:

复制代码代码如下:

<Button

android:layout_width=“42dip”

android:layout_height=“42dip”

android:focusable=“true”

/>

4.dimension:尺寸值。

(1)属性定义:

复制代码代码如下:

<declare-styleablename=“名称”>

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

(2)属性使用:

复制代码代码如下:

<Button

android:layout_width=“42dip”

android:layout_height=“42dip”

/>

5.float:浮点值。

(1)属性定义:

复制代码代码如下:

<declare-styleablename=“AlphaAnimation”>

<attrname="fromAlpha"format=“float”/>

<attrname="toAlpha"format=“float”/>

(2)属性使用:

复制代码代码如下:

<alpha

android: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”/>

(2)属性使用:

复制代码代码如下:

<animated-rotate

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)属性定义:

复制代码代码如下:

<declare-styleablename=“MapView”>

<attrname="apiKey"format=“string”/>

(2)属性使用:

复制代码代码如下:

<com.google.android.maps.MapView

android: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”/>

(2)属性使用:

复制代码代码如下:

<rotate

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)属性定义:

复制代码代码如下:

<declare-styleablename=“名称”>

<attrname=“orientation”>

<enumname="horizontal"value=“0”/>

<enumname="vertical"value=“1”/>

(2)属性使用:

复制代码代码如下:

<LinearLayout

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)属性定义:

复制代码代码如下:

<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”/>

(2)属性使用:

复制代码代码如下:

<activity

android:name=“.StyleAndThemeActivity”

android:label=“@string/app_name”

android:windowSoftInputMode=“stateUnspecified|stateUnchanged | stateHidden”>

actionandroid:name=“android.intent.action.MAIN”/

categoryandroid:name=“android.intent.category.LAUNCHER”/

特别要注意:

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

(1)属性定义:

复制代码代码如下:

<declare-styleablename=“名称”>

<attrname="background"format=“reference|color”/>

(2)属性使用:

复制代码代码如下:

<ImageView

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文件里面的内容来决定的。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
img

上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-ZSAF8haR-1710916491114)]
[外链图片转存中…(img-cgKNPEPg-1710916491114)]
[外链图片转存中…(img-OU8ZTgZA-1710916491115)]
[外链图片转存中…(img-9Txdy36i-1710916491115)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
[外链图片转存中…(img-pXveQuIz-1710916491116)]

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值