Android自定义属性步骤:
第一步:创建自定义View
public class MyTextView extends TextView {
public MyTextView(Context context) {
super(context);
}
// 获取自定义属性在两个参数的构造方法中
public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray typedArray= context.obtainStyledAttributes(attrs,R.styleable.MyTextView);
String name= typedArray.getString(R.styleable.MyTextView_name);
Log.e("test", "MyTextView:自定义属性---- "+name );
}
public MyTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
}
第二步:在res/values文件夹下创建attrs.xml定义我们需要使用的属性 格式如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="MyTextView">
<attr name="name" format="string"></attr>
</declare-styleable>
</resources>
name的值就是属性的名字,format是限定当前定义的属性能接受什么值
format对应的类型:
reference:引用资源
string:字符串
Color:颜色
boolean:布尔值
dimension:尺寸值
float:浮点型
integer:整型
fraction:百分数
enum:枚举类型
flag:位或运算
第三步:在xml布局文件中使用自定义属性
1 再布局文件中声明我们自定义属性 如下图
2 在自定义view中使用我们的属性如下图
第四步:在view的构造方法中获取我们自定义的属性
在两个值的构造方法中获取,因为当加载xml文件时会走这个方法
控制台打印获取的值