900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > android 自定义布局 attribute· android 自定义控件之xml---- attributeset attrs

android 自定义布局 attribute· android 自定义控件之xml---- attributeset attrs

时间:2022-04-23 06:56:24

相关推荐

android 自定义布局 attribute· android 自定义控件之xml---- attributeset attrs

主要是说明android 自定义控件的在布局代码中设置属性,如何自定义attributeset ,和在控件中如何获取到xml布局中设置的属性值,不是想了解这方面的请略过...不浪费大家时间

1.首先添加attr属性值

在当前project中的res/value目录中创建xml-resources;

如下:

其中上面的attr表情声明属性以及format中的属性的类型

属性类型有

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)属性使用:

/>

6. integer:整型值。

(1)属性定义:

(2)属性使用:

xmlns:android = "/apk/res/android" android:drawable = "@drawable/图片ID" android:pivotX = "50%" android:pivotY = "50%" android:framesCount= "12" android:frameDuration= "100"

/>

7. string:字符串。

(1)属性定义:

(2)属性使用:

/>

8. fraction:百分数。

(1)属性定义:

(2)属性使用:

xmlns:android = "/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 = "/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"

/> 哈哈上面是偷的ctrl CV出来的。。。

2.获取属性的值

在最后一个构造方法中获取属性的值

TypedArray typedArray = getResources().obtainAttributes(attrs,

R.styleable.TabView);

这里面的TabView是我在上面attr中定义的该控件的名字,

mTextColorNormal = typedArray.getColor(R.styleable.TabView_text_normal_color, mTextColorNormal);

取颜色的是getColor、去宽度高度是getDimension,还有getboolean。具体自己看提示编译器提示,

需要注意的是这里R.styleable.TabView_text_normal_color

这里输入R.styleable然后输入TabView,会出现相应的属性,自己去找。

最后回收掉typedArray 释放内存。typedArray.recycle();

3.在xml中配置自定义属性:

首先在

xmlns:android="/apk/res/android"

之后加一个

xmlns:app="/apk/res-auto"

这个将最后设置为res-auto,其实可以准备定位到attr.xml文件。但是可以自动找到这个文件,我就不作死了。

上面的

xmlns:app

其中的app,可以自行设置,根据个人爱好吧。

但是引用自定义属性的时候必须带上自己设置的这个(app)name;

使用如下:

app:item_padding="10dp"

app:text_normal_color="#ff777777"

app:text_select_color="#ff45c01a"

app:text_size="12sp"

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。