2012-03-07 75 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); 

希望这将解决您的问题。