2012-03-07 108 views
0

我正在使用Canvas.drawBitmap()來渲染一個PNG文件到我創建的自定義視圖(創建我自己的自定義按鈕)。除了PNG在photoshop中有一個透明的背景,一切都工作正常,但它在我的android佈局中似乎不是透明的。佈局是一個listview元素。Canvas.drawBitmap()不顯示PNG透明度

我創建的圖像:

`BitmapFactory.Options opt = new BitmapFactory.Options(); 
    opt.inPreferredConfig = Config.ARGB_8888; 
    this.image = BitmapFactory.decodeResource(context.getResources(), imageResId, opt);` 

我渲染圖像用:

 `protected void onDraw(Canvas canvas) 
    { 
     canvas.drawColor(Color.TRANSPARENT); 
     canvas.drawBitmap(image, WIDTH_PADDING/2, HEIGHT_PADDING/2, null); 
    }` 

目前WIDTH_PADDING和HEIGHT_PADDING都是0,但我不認爲這是相關的。

PNG本身是在Photoshop中創建的。我只是做了新文件 - >透明背景 - >並畫了一個紅色的橢圓形,然後保存爲PNG .. PNG顯示與白色,我期望它是透明的。

Photoshop文件 photoshop file http://www.supercars.net/bb/redovalbutton.png

Android設備上查看 photoshop file http://www.supercars.net/bb/myview.png

我把它叫做在我的xml:

com.busanbar.busanbardev.pmchat.PMCommentResendButton 
android:id="@+id/resendButton" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:focusable="true" 
android:focusableInTouchMode="true" 
android:layout_weight="1" 

我怎樣才能使白色變成透明,所以我可以看到灰色的在我的列表視圖容器中的背景紋理?

+1

看看http://stackoverflow.com/questions/5118894/set-alpha-of-bitmap-image – jsimpson 2012-03-07 16:05:30

+0

你有沒有得到這個問題的解決方案?我嘗試繪製到畫布上時遇到同樣的問題。 – 2012-11-27 20:39:30

回答

0

我用android.graphics.Canvas.Canvas(位圖位圖)做同樣的

Bitmap b = BitmapFactory.decodeResource(con.getResources(), R.drawable.name_of_png); 
Canvas canvas = new Canvas(b); 

希望這將解決您的問題。