2

我在 Android 屏幕捕获中遇到问题。捕获的图像是透明的,而原始图像是不透明的实体 JPEG 文件!我在许多具有不同操作系统版本的设备上进行了测试,所有手机上都存在问题。这是我的屏幕截图代码,也是最终输出

代码:

final Bitmap rawBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
final Canvas canvas = new Canvas(rawBitmap);
rendererView.layout(0, 0, width, height);
rendererView.draw(canvas);
rawBitmap.compress(CompressFormat.PNG, 100, new FileOutputStream("/sdcard/test" + System.currentTimeMillis() + ".png"));

结果:

在此处输入图像描述

4

2 回答 2

2

问题解决了。将图像源加载到 ImageView 时,我对 BitmapFactory Options 使用了错误的设置。

代码(之前和之后):

    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inDither = false;
    options.inPurgeable = true;
    options.inInputShareable = true;
    //options.inPreferredConfig = Config.ARGB_4444; //WRONG
    options.inPreferredConfig = Config.ARGB_8888; //CORRECT
    bitmap = BitmapFactory.decodeFile(result.filePath(), options);

谢谢大家。

于 2012-10-10T11:40:02.623 回答
0

我会在 createBitmap() 中尝试 Bitmap.Config.RGB_565

于 2012-10-09T15:57:47.223 回答