Android declare-styleable自定义控件属性

第一步:  在values文件夹下面建立attr.xml文件,在这个文件中定义自定义属性

Android declare-styleable自定义控件属性_第1张图片


比如:

[java]  view plain copy
  1. "1.0" encoding="utf-8"?>  
  2.   
  3.     "MultiDirectionSlidingDrawer">  
  4.         "handle" format="dimension">  
  5.         "content" format="dimension">  
  6.         "allowSingleTap" format="boolean">  
  7.         "animateOnClick" format="boolean">  
  8.         "bottomOffset" format="dimension">  
  9.         "topOffset" format="dimension">  
  10.             "direction" >  
  11.                 <enum name="rightToLeft" value="0" />  
  12.                 <enum name="bottomToTop" value="1" />  
  13.                 <enum name="leftToRight" value="2" />  
  14.                 <enum name="topToBottom" value="3" />  
  15.               
  16.       
  17.   


第二步:使用,自定义属性的使用是在布局中使用


Android declare-styleable自定义控件属性_第2张图片



第三步:在自定义控件中使用。

注意要在有三个参数的构造方法中才能获取到。

Android declare-styleable自定义控件属性_第3张图片

第一部分的命名就是

[java]  view plain copy
  1. declare-styleable   


关于自定义属性的设置问题:

  fomat的属性自己定义  根据自己的需要来选择string , integer , dimension , reference , color , enum......

reference:参考指定Theme中资源ID。

dimension:尺寸值

float:浮点型

boolean:布尔值

integer:整型

string:字符串

fraction:百分数

flag:位或运算

Color:颜色

enum:枚举

其他都很简单,一看就会,枚举的特殊些,就是把能选的值列举出来,在布局中设置属性的时候就只能选择在attr.xml中定义的枚举的值

比如:

[java]  view plain copy
  1. "direction" >  
  2.             <enum name="rightToLeft" value="0" />  
  3.             <enum name="bottomToTop" value="1" />  
  4.             <enum name="leftToRight" value="2" />  
  5.             <enum name="topToBottom" value="3" />  
  6.           

在使用的时候如图: 在构造方法中取值就会取到对应的value中的值。

Android declare-styleable自定义控件属性_第4张图片

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

1
2
3
     name = "名称">    
	 name="background"       format="reference|color" />
    

使用:

1
 android:background = "@drawable/图片ID|#00FF00"/>

你可能感兴趣的:(Android declare-styleable自定义控件属性)