我尝试使用setDrawingCacheEnabled
和getDrawingCache
的所有方法都没有起作用。系统生成了一个图像,但看起来是黑色的。
其他人在stackoverflow上似乎也遇到了类似的问题,但答案要么太复杂,要么与我的情况不相关。以下是我查看过的一些答案:
- 将视图保存为位图,但只得到黑屏
- 截图显示为黑色
- getDrawingCache始终返回相同的位图
- 在Android上将视图转换为位图
- 位图未正确保存,只出现黑色图像
- 将自定义视图转换为位图返回黑色图像
以下是我的代码:
view.setDrawingCacheEnabled(true);
Bitmap bitmap = view.getDrawingCache();
try {
FileOutputStream stream = new FileOutputStream(getApplicationContext().getCacheDir() + "/image.jpg");
bitmap.compress(CompressFormat.JPEG, 80, stream);
stream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
view.setDrawingCacheEnabled(false);
我在下面分享我的答案,以防其他人犯同样的错误。