android- 如何在视图中更改 canvas 的颜色?
android- how to change the color of canvas in a view?
我写了一个自定义的 View
来画一个圆(它的 onDraw
函数已被重写来做那个)。
现在我如何通过代码更改圆圈的颜色?(来自将要显示该圆圈的 Activity
函数)
您可以设置一个 setCircleColor 来更改圆的颜色并调用将调用 View onDraw 方法的 invalidate。
您还可以检查 invalidate(Drawable drawable).
public class MyCustomView extends View {
MyCustomView myView;
private Paint myCircle;
public MyCustomView(Context context){
super(context);
initView();
}
private void initView(){
myView = this;
myCircle = new Paint();
myCircle.setColor(0xa300ff00);
}
@Override
protected void onDraw(Canvas canvas) {
drawCircle(canvas);
}
private void drawCircle(Canvas canvas){
canvas.drawCircle(canvas.getWidth()/2, canvas.getHeight()/2, 10, myCircle);
}
public void setCircleColor(int color){
myCircle.setColor(color);
myView.invalidate();
}
}
我写了一个自定义的 View
来画一个圆(它的 onDraw
函数已被重写来做那个)。
现在我如何通过代码更改圆圈的颜色?(来自将要显示该圆圈的 Activity
函数)
您可以设置一个 setCircleColor 来更改圆的颜色并调用将调用 View onDraw 方法的 invalidate。 您还可以检查 invalidate(Drawable drawable).
public class MyCustomView extends View {
MyCustomView myView;
private Paint myCircle;
public MyCustomView(Context context){
super(context);
initView();
}
private void initView(){
myView = this;
myCircle = new Paint();
myCircle.setColor(0xa300ff00);
}
@Override
protected void onDraw(Canvas canvas) {
drawCircle(canvas);
}
private void drawCircle(Canvas canvas){
canvas.drawCircle(canvas.getWidth()/2, canvas.getHeight()/2, 10, myCircle);
}
public void setCircleColor(int color){
myCircle.setColor(color);
myView.invalidate();
}
}