为什么Bitmap在android中显示黑色背景

Bek*_*eka 8 android android-layout android-canvas android-bitmap

我写了一些代码,可以将tablelayout转换为bitmap.everythink工作完美但是,我的位图有黑色背景这是我的源代码

public Bitmap sendMyData(TableLayout view) {

    Bitmap bitmap = null;

    ByteArrayOutputStream bbb = new ByteArrayOutputStream();
    view.setDrawingCacheEnabled(true);
    view.layout(0, 0, view.getWidth(), view.getHeight());
    view.buildDrawingCache(true);
    bitmap = Bitmap.createBitmap(view.getDrawingCache());
    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bbb);
    view.setDrawingCacheEnabled(false);

    return bitmap;

}
Run Code Online (Sandbox Code Playgroud)

我的代码出了什么问题?为什么我的位图有黑色背景?如果有人知道解决方案,请帮助我谢谢

Moh*_*men 8

JPEG格式必须具有背景颜色.因此,当您将PNG图像或图标转换为JPEG时,请将透明背景替换为黑色.

将其转换为PNG.bitmap.compress(Bitmap.CompressFormat.PNG,100,bbb);


Ani*_*ugu 0

JPEG 格式不支持 Alpha 透明度,这就是当您将原始图像转换为 JPEG 时透明背景变成黑色的原因。

请改用 PNG 格式

我在这里找到了它:为什么位图到 Base64 字符串在 android 的 webview 上显示黑色背景?