android-如何在视图中更改画布的颜色?

时间:2015-02-20 14:57:04

标签: android android-canvas

我编写了一个自定义的View,它绘制了一个圆圈(它的onDraw函数已被覆盖以执行此操作)。

现在我如何从代码中改变我的圆圈的颜色?(来自显示该圆圈的Activity函数)

1 个答案:

答案 0 :(得分:1)

您可以创建一个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();
    }
}