Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android在绘图时获得背景色_Android_Canvas_Background_Draw - Fatal编程技术网

Android在绘图时获得背景色

Android在绘图时获得背景色,android,canvas,background,draw,Android,Canvas,Background,Draw,我试图在绘制CardView元素的画布时更改背景色。所以我试图得到onDraw事件的背景色,但我没有得到 如何获得CardView onDaw活动的背景色 public class MyCardView extends CardView { public MyCardView(Context context) { super(context); } @Override protected void onDraw(Canvas canvas) {

我试图在绘制CardView元素的画布时更改背景色。所以我试图得到onDraw事件的背景色,但我没有得到

如何获得CardView onDaw活动的背景色

public class MyCardView extends CardView {
    public MyCardView(Context context) {
        super(context);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        int bgColor = ???some method???;
        if(bgColor == 0) {
            setBackgroundColor(Color.RED);
        }
        super.onDraw(canvas);
    }
}

提示:避免在
onDraw()中分配

public class MyCardView extends CardView {
    private Drawable background;
    private int color = Color.RED;

    public MyCardView(Context context) {
        super(context);
        background = ((View) this.getParent()).getBackground();
        if (background instanceof ColorDrawable) {
            color = ((ColorDrawable) background).getColor();
        }
    }

    @Override
    protected void onDraw(Canvas canvas) {
        setBackgroundColor(color);
        super.onDraw(canvas);
    }
}