2016-04-25 6 views
0

Ich habe versucht, das aktuelle Bild eines benutzerdefinierten ImageView programmgesteuert zu löschen, nachdem ich die Methode setImageResource() aufgerufen habe, meine benutzerdefinierte Bildansicht behalten das alte Bild. Ich versuche, die folgenden Lösungen:CustomView - Clear Canvas dank setImageResource 0

  • canvas.drawColor (Color.TRANSPARENT, Mode.CLEAR)
  • ein leeres Bitmap zeichnen, es ist nichts passiert ...

Hier ist die OnDraw Methode meiner Ansicht:

private void loadBitmap() { 
    BitmapDrawable bitmapDrawable = (BitmapDrawable) getDrawable(); 
    image = (bitmapDrawable != null) ? bitmapDrawable.getBitmap() : null; 
} 


@Override 
public void onDraw(Canvas canvas) { 
    loadBitmap(); 
    final int circleCenter = getHeight()/2; 
    final int radius = circleCenter - 5; 

    if (image != null) { 
     paint.setShader(computeBitmapShader()); 
     canvas.drawCircle(circleCenter, circleCenter, radius, paint); 
    } else { 
     super.onDraw(canvas); 
    } 
} 

Antwort

0

Es war ein dummer Fehler von meiner Seite. Ich benutzte eine Animation, in der eine Ansicht auf meinem CircleView erscheinen sollte und nach dem Auflösen, aber setFillAfter false hat nicht funktioniert ...