Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android canvas.drawBitmap()仅在alpha层为0时使用_Android_Alpha - Fatal编程技术网

Android canvas.drawBitmap()仅在alpha层为0时使用

Android canvas.drawBitmap()仅在alpha层为0时使用,android,alpha,Android,Alpha,我正在使用BitmapFactory.decodeResource加载png资源,然后使用drawBitmap()在画布上绘制它们 我一次画一个不同的层,这样透明的物体应该遮挡它们应该遮挡的东西,但是当我的PNG中的alpha级别高于0时,它们似乎会被忽略。alpha为0的位置不会被渲染,这是正确的,但是如果alpha小于255,而不是在该像素处将颜色与现有颜色混合,它只绘制颜色,而不进行任何alpha混合 如何在画布上绘制位图,并根据源图像的alpha通道进行适当的混合?相关代码片段如下所示:

我正在使用
BitmapFactory.decodeResource
加载png资源,然后使用
drawBitmap()
画布上绘制它们

我一次画一个不同的层,这样透明的物体应该遮挡它们应该遮挡的东西,但是当我的PNG中的alpha级别高于0时,它们似乎会被忽略。alpha为0的位置不会被渲染,这是正确的,但是如果alpha小于255,而不是在该像素处将颜色与现有颜色混合,它只绘制颜色,而不进行任何alpha混合

如何在
画布上绘制位图,并根据源图像的alpha通道进行适当的混合?相关代码片段如下所示:

BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inPreferredConfig = Config.ARGB_8888;
...
decorationTextures[1] = new 
    TextureStatic(BitmapFactory.decodeResource(resources, R.drawable.ice_1, opt));
decorationTextures[2] = new 
    TextureStatic(BitmapFactory.decodeResource(resources, R.drawable.ice_2, opt));
...
if(mTexture != null && mInPlay) {
    if(mZone != null)
        canvas.drawBitmap(mTexture.getBitmap(),
                          mScreenX + mZone.getXOffset(), 
                          mScreenY + mZone.getYOffset(), null);
    else
        canvas.drawBitmap(mTexture.getBitmap(), mScreenX, mScreenY, null);
}

您是否尝试过更改
SurfaceView
(如果您正在使用)和/或
窗口的格式,以匹配您正在使用的位图的格式(
ARGB_8888
)?这可能会妨碍您获得真正的透明度效果,在任何情况下,您都应该尝试


尝试
Window.setFormat(PixelFormat.RGBA_8888)
SurfaceHolder.setFormat(PixelFormat.rgba8888;
设置像素格式。

您找到解决此问题的方法了吗?