自定义属性attrs.xml

1、

自定义属性的方式
首先在attrs.xml定义自定义属性:如


        
        
        
    

之后再xml文件里设置这些属性

在头部定义他的namespace
xmlns:app="http://schemas.android.com/apk/res-auto">

之后需要在自定义View中引用

//如果使用AttributeSet去获得最终的像素值,那么需要第一步拿到id,
第二步再去解析id。而TypedArray正是帮我们简化了这个过程。
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.MyTextView);//获取自定义属性对象

//获取自定义属性,看到它的id竟然是拼接的!RoundTextView_header
header= typedArray.getColor(R.styleable.RoundTextView_header,-1);
content=typedArray.getDimension(R.styleable.RoundTextView_cornerRadius, 0);

//获取到属性之后我们还要为我们的View设置上这些属性
setBackgroundDrawable(drawable());
//获取属性
private Drawable drawable(){
StateListDrawable stateListDrawable = new StateListDrawable();
GradientDrawable mdrawable = new GradientDrawable();
mdrawable.setColor(header);
mdrawable.setCornerRadius(content);
stateListDrawable.add(mdrawable);
return stateListDrawable;
}

总结:感觉自定义属性就是按照Android的规定,我们设置自己的属性,如:距离,颜色的数值,然后把他们设置到view上。可以想象,android的那些原生属性思路跟这也差不多!

你可能感兴趣的:(自定义属性attrs.xml)