Android 自定义控件的属性使用,android开发软件工具

本文详细介绍了Android自定义控件中属性的定义和使用,包括颜色、布尔值、尺寸、浮点值、整型值、字符串、百分数、枚举值、位或运算等多种类型,并探讨了AttributeSet与TypedArray在自定义控件中的作用,帮助开发者更好地理解和应用自定义属性。
摘要由CSDN通过智能技术生成

(2)属性使用:

复制代码代码如下:

<ImageView

android:layout_width=“42dip”

android:layout_height=“42dip”

android:background="@drawable/图片ID"

/>

2.color:颜色值。

(1)属性定义:

复制代码代码如下:

<declare-styleablename=“名称”>

<attrname="textColor"format=“color”/>

(2)属性使用:

复制代码代码如下:

<TextView

android:layout_width=“42dip”

android:layout_height=“42dip”

android:textColor="#00FF00"

/>

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

来源: <http://www.jb51.net/article/48962.htm>

二、自定义属性的应用

让我们再来看看布局xml中需要注意的事项。

**首先得声明一下:xmlns:mytool(名字可以任意)=http://schemas.android.com/apk/res/cn.zzm.toolbar (自定义包名)

注意,“mytool”可以换成其他的任何名字,后面的url地址必须最后一部分必须用上自定义组件的包名。自定义属性了,在属性名前加上“mytool”即可。**

**<LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”

xmlns:CommonText=“http://schemas.android.com/apk/res-auto” //对与自定义属性的引用可以直接使用这个

android:layout_width=“match_parent”

android:layout_height=“match_parent”

android:background="@drawable/bg"

android:orientation=“vertical” >**

最后

希望大家能有一个好心态,想进什么样的公司要想清楚,并不一定是大公司,我选的也不是特大厂。当然如果你不知道选或是没有规划,那就选大公司!希望我们能先选好想去的公司再投或内推,而不是有一个公司要我我就去!还有就是不要害怕,也不要有压力,平常心对待就行,但准备要充足。最后希望大家都能拿到一份满意的 offer !如果目前有一份工作也请好好珍惜好好努力,找工作其实挺累挺辛苦的。

这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。

由于篇幅有限,这里以图片的形式给大家展示一小部分。

xmlns:CommonText=“http://schemas.android.com/apk/res-auto” //对与自定义属性的引用可以直接使用这个

android:layout_width=“match_parent”

android:layout_height=“match_parent”

android:background="@drawable/bg"

android:orientation=“vertical” >**

最后

希望大家能有一个好心态,想进什么样的公司要想清楚,并不一定是大公司,我选的也不是特大厂。当然如果你不知道选或是没有规划,那就选大公司!希望我们能先选好想去的公司再投或内推,而不是有一个公司要我我就去!还有就是不要害怕,也不要有压力,平常心对待就行,但准备要充足。最后希望大家都能拿到一份满意的 offer !如果目前有一份工作也请好好珍惜好好努力,找工作其实挺累挺辛苦的。

这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。

由于篇幅有限,这里以图片的形式给大家展示一小部分。

[外链图片转存中…(img-F0vgMqo1-1641551663916)]

本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值