2017-01-19 46 views
0

我試圖填補Bitmap裏面白色的圓,更具體:位圖中白圈

我已經例如這個Bitmap

enter image description here

而且我想這一點:

enter image description here

我已經使背景灰色的理解圖像。

我用這個方法,但它不會讓我想要什麼..

public static Bitmap getRoundedBitmap(Bitmap bitmap) 
{ 
    final Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888); 
    final Canvas canvas = new Canvas(output); 

    final int color = Color.WHITE; 
    final Paint paint = new Paint(); 
    final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); 
    final RectF rectF = new RectF(rect); 

    paint.setAntiAlias(true); 
    canvas.drawARGB(0, 0, 0, 0); 
    paint.setColor(color); 
    canvas.drawOval(rectF, paint); 
    paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); 
    canvas.drawBitmap(bitmap, rect, rect, paint); 

    bitmap.recycle(); 

    return output; 
} 

回答

1

我猜顏色使用畫橢圓具有ALPHA = 0試着用顏色替換Color.WHITE( 1.0f,1.0f,1.0f,1.0f)。告訴我,如果是解決你的問題,並採取一看: What does PorterDuff.Mode mean in android graphics.What does it do?

在這種情況下,SRC_IN:SA *大,SC *大(從Android的參考採取PorterDuff.Mode)

+0

謝謝,'PorterDuff.Mode.DST_OVER'解決了我的問題 –

+0

不客氣!祝你有個好的一天。 – NicoBerrogorry

-1

以下是使用XML製作的形狀的示例。

1)右鍵單擊您的可繪製資源文件夾並創建一個新的可繪製資源文件。

2)粘貼下面的代碼。這會創建一個可繪製的資源,它與您想要的背景非常相似。

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape android:shape="rectangle"> 
      <size android:width="50dp" android:height="50dp"/> 
      <solid android:color="@android:color/darker_gray"/> 
     </shape> 
    </item> 
    <item> 
     <shape android:shape="oval"> 
      <size android:width="50dp" android:height="50dp"/> 
      <solid android:color="@android:color/white"/> 
     </shape> 
    </item> 
</layer-list> 

3)在佈局中使用資源。用我的'勾號'資源文件替換佔位符Android複選框。

<RelativeLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/highlight_circle"> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:src="@android:drawable/checkbox_on_background"/> 
</RelativeLayout> 
+0

我想要位圖沒有資源... –

+0

你能澄清你想要什麼嗎?您是否希望將位圖放置在圓/灰色背景中以便在視圖中使用? – Charlie

+0

不,我有一個位圖(第一個圖像),我想把它包裝成白色圓圈(如第二個圖像,但另一個位圖,而不是資源文件需要) –