自定义组件:自定义类MyView继承View,Paint画笔画的长方形绿色
我想在使用MyView组件的Activity控制长方形的颜色,不通过重绘,有什么方法修改长方形画笔颜色?
public MyView extends View{
public MyView(Context context, AttributeSet attributes){
super(context,attributes)
//初始化画笔
paint=new Paint();
paint.setColor(Color.GREEN);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(8);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawRect(50,50,200,200,paint);
}
}
paint=new Paint();
这个定义要放在构造函数外面,作为成员变量,这样onDraw里才能得到
通过暴露get方法返回,当在activity关联控件对象调用该方法得到画笔
在你自定义的view 当中 写一个方法去初始化paint 给一个颜色参数 在ondraw 中使用就好了
你可以在MyView中增加一个刷新方法,修改画笔颜色,然后刷新view
public void update(int colorId){
paint.setColor(colorId);
invalidate();
}