2017-09-11 7 views
0

S'il vous plaît aidez-moi à comprendre ce que je fais mal. Je dois dessiner un cercle derrière une image (donnée en bitmap) avec une couleur différente basée sur la logique de l'application, en utilisant le code suivant.Toile drawCircle derrière une image existante

 Bitmap workingBitmap = Bitmap.createBitmap(bitmap); 
     Bitmap mutableBitmap = workingBitmap.copy(Bitmap.Config.ARGB_8888, true); 

     Canvas canvas = new Canvas(mutableBitmap); 

     Paint paint = new Paint(); 
     paint.setAntiAlias(true); 
     paint.setColor(Color.BLUE); 
     paint.setStyle(Paint.Style.FILL_AND_STROKE); 

     int horizontalPadding = (iconSize - drawingWidth)/2; 
     int verticalPadding = (iconSize - drawingHeight)/2; 

     canvas.drawCircle(120, 120, 100, paint); 
     return mutableBitmap; 

ce que je veux est un cercle au-dessus de l'image, qui couvre tout l'image complètement, comment dire le code qu'une image a une couche supérieure.

Merci

Répondre

1

votre code que vous utilisez mutableBitmap comme toile et dessiner le cercle au-dessus. Si vous voulez dessiner votre image au-dessus du cercle, vous devez dessiner après le cercle de dessin. Code:

Bitmap workingBitmap = Bitmap.createBitmap(bitmap); 
    Bitmap mutableBitmap = workingBitmap.copy(Bitmap.Config.ARGB_8888, true); 
    // Create an empty bitmap 
    Bitmap output = Bitmap.createBitmap(mutableBitmap.getWidth(), mutableBitmap.getHeight(), 
      mutableBitmap.getConfig()); 
    // Use empty bitmap as canvas 
    Canvas canvas = new Canvas(output); 

    Paint paint = new Paint(); 
    paint.setAntiAlias(true); 
    paint.setColor(Color.BLUE); 
    paint.setStyle(Paint.Style.FILL_AND_STROKE); 

    int horizontalPadding = (iconSize - drawingWidth)/2; 
    int verticalPadding = (iconSize - drawingHeight)/2; 

    canvas.drawCircle(120, 120, 100, paint); 
    // And now draw image above circle 
    canvas.drawBitmap(mutableBitmap, 0, 0, null); 
    return output; 
+0

merci ça marche –