自定义组件:在使用自定义组件的Activity修改Paint画笔画的长方形颜色

自定义组件:自定义类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();
}