2017-09-11 13 views
0

私が間違っていることを理解してください。私は、アプリケーションロジックに基づいて別の色でイメージ(ビットマップとして与えられた)の後ろに円を描く必要があります。私は次のコードを使用します。私が取得しています何キャンバスdrawCircle既存の画像の後ろ

 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; 

は画像が上位層を有しているコードを伝えるためにどのように、ちょうど完全に画像をカバー画像、上記のサークルです。

おかげキャンバスとしてmutableBitmapを使用し、その上に円を描き、あなたのコードで

答えて

1

。サークルの上にイメージを描画する場合は、サークルを描画した後に描画する必要があります。コード:

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

ありがとうございます –

関連する問題