在values文件夹下,创建一个attr的xml文件
一些常见属性设置
declare-styleable的name要写成对应要应用于的控件的名字
<declare-styleable name="TabButton">
<attr name="icon" format="reference"></attr>
<attr name="text" format="string"></attr>
<attr name="color" format="color"></attr>
<attr name="text_size" format="dimension"></attr>
</declare-styleable>
在对应的控件的构造函数中解析属性
TypedArray array= context.getTheme().obtainStyledAttributes(attrs, R.styleable.guaguaKa, defStyleAttr,0);
int count=array.getIndexCount();
for(int i=0;i<count;i++){
switch (array.getIndex(i)) {
case R.styleable.guaguaKa_GuaguaoutBitmap:
outerBitmap=drawable.getBitmap();
break;
case R.styleable.guaguaKa_Guaguatext:
case R.styleable.guaguaKa_GuaguatextColor:
textcolor=array.getColor(R.styleable.guaguaKa_GuaguatextColor, 0x000000);
break;
case R.styleable.guaguaKa_GuaguatextSize:
}
int count=array.getIndexCount();
for(int i=0;i<count;i++){
switch (array.getIndex(i)) {
case R.styleable.guaguaKa_GuaguaoutBitmap:
BitmapDrawable drawable=(BitmapDrawable) array.getDrawable
(R.styleable.guaguaKa_GuaguaoutBitmap);
outerBitmap=drawable.getBitmap();
break;
case R.styleable.guaguaKa_Guaguatext:
bottomText=array.getString(R.styleable.guaguaKa_Guaguatext);
break;
case R.styleable.guaguaKa_GuaguatextColor:
textcolor=array.getColor(R.styleable.guaguaKa_GuaguatextColor, 0x000000);
break;
case R.styleable.guaguaKa_GuaguatextSize:
textsize=array.getDimensionPixelOffset(R.styleable.guaguaKa_GuaguatextSize,
(int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 20,
getResources().getDisplayMetrics()));
break;
}
}