2016-12-26 2 views
0

Я пытаюсь изменить цвет фона при рисовании холста элемента CardView. Поэтому я пытаюсь получить цвет фона на событии onDraw, но я не получаю.Android получить цвет фона при рисовании

Как получить цвет фона в событии 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); 
    } 
} 

ответ

0

Советы: Избежание Отчисления в 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); 
    } 
} 
Смежные вопросы