PNG 在 Android 中失去透明度(如果其所有像素都不透明)

PNGs losing transparency in Android (if all its pixels are not transparent)

我有一个有两个视图的应用程序 - 一个在另一个之上。在顶部,我使用了从 PNG 资源加载的位图 (ARGB_8888),我使用它的 alpha 通道使其某些部分消失,以便下面的那个变得可见。如果源图像至少有一个透明像素开始,则一切正常。但是如果源 PNG 没有透明像素,那么将它的 alpha 更改为 0 会使我更改为黑色的像素,而不是透明的。

有什么办法可以解决吗?任何类似的东西:

aaptOptions {
    cruncherEnabled = false
}

但另一种选择?

目前,我在编译之前修改了源图像,方法是制作一小块区域"semi-transparent",但我想避免这种情况。

好的。终于明白了。

我不得不添加一行。而不是:

mBitmap = BitmapFactory.decodeResource(getResources(), getResourceID()).copy(Bitmap.Config.ARGB_8888, true);

我现在正在使用:

mBitmap = BitmapFactory.decodeResource(getResources(), getResourceID()).copy(Bitmap.Config.ARGB_8888, true);
mBitmap.setHasAlpha(true);

并且无需在源图像上添加透明像素!