Я пытаюсь изменить фоновое изображение пользовательского просмотра с некоторым успехом.изображение изменится, но проблема в том, что я все еще вижу следы старого изображения.когда я пытаюсь очистить холст перед рисованием нового изображения, оно не работает.Я создаю растровое изображение для хранения изображения.при смене изображения я вызываю Canvas.drawColor () перед рисованием нового изображения, но старое изображение сохраняется.я пробовал drawColor (0), drawColor (Color.BLACK), c.drawColor (0, PorterDuff.Mode.CLEAR), и ничего из вышеперечисленного не работает.как таковой, я должен был отправить это на рассмотрение более опытных умов, чем мой.
фактический код выглядит следующим образом:
private int bgnd;
private boolean switching;
public void setBgnd(int incoming){
switching = true;
switch (incoming){
case R.drawable.image1:
bgnd = incoming;
this.invalidate();
break;
case R.drawable.image2:
bgnd = incoming;
this.invalidate();
break;
}
}
protected void onDraw(Canvas c){
if(switching == true){
Bitmap b = BitmapFactory.decodeResource(getResources(), bgnd);
c.drawColor(0, PorterDuff.Mode.CLEAR);
c.drawBitmap(b, 0, 0, null);
switching = false;
}else{
Bitmap b = BitmapFactory.decodeResource(getResources(), bgnd);
c.drawBitmap(b, 0, 0, null);
}
}