Android自定义属性

自定义属性一般包括如下四步:

1.在values/attrs.xml文件中编写styleable和attr等标签;
2.自定义一个继承自View的CustomView;
3.在自定义的CustomView类中通过TypedArray获得属性,并进行相应的操作;
4.在布局文件中使用自定义的CustomView。

代码示例

values/attrs.xml文件



    
        
        
    

自定义的CustomView类

public class CustomView extends TextView {

    protected float boundWidth;
    protected int boundColor;
    private Paint mPaint;

    public CustomView(Context context) {
        super(context);
    }

    public CustomView(Context context, AttributeSet attrs) {
        super(context, attrs);
        TypedArray ta = context.obtainStyledAttributes(attrs,R.styleable.test);
        boundWidth = ta.getDimension(R.styleable.test_boundWidth,1.0f);
        boundColor = ta.getColor(R.styleable.test_bound, Color.BLACK);
        mPaint = new Paint();
        mPaint.setColor(boundColor);
        mPaint.setStyle(Paint.Style.STROKE);
        mPaint.setStrokeWidth(boundWidth);
        ta.recycle();
    }

    @Override
    protected void onDraw(Canvas canvas) {
        canvas.drawRect(0,0,getWidth(),getHeight(),mPaint);
        super.onDraw(canvas);
    }
}

布局文件


   


    

可以看到这是一个继承自TextView的CustomView,TextView本来不带边框,通过自定义给它添加了边框的属性,边框的宽度的属性。

扩展阅读

  • [Android] View 的三种自定义方式:扩展,组合,重写;
  • [android 为TextView添加边框](android 为TextView添加边框);
  • Android 深入理解Android中的自定义属性;
  • Android中自定义样式与View的构造函数中的第三个参数defStyle的意义;
  • Android中自定义属性(attrs.xml,TypedArray的使用)。

你可能感兴趣的:(Android自定义属性)