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

/>

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"

/> 哈哈上面是偷的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="http://schemas.android.com/apk/res/android"

之后加一个

xmlns:app="http://schemas.android.com/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"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值