我使用以下代码截取TableLayout的屏幕截图。我必须补充一点,我的android应用程序的主题设置为LIGHT。它在模拟器屏幕上显示完全正常(就像它应该的那样)....但是,一旦拍摄截图,图像就会变成这样......任何人都可以帮助指出我在做错了什么?谢谢!
private void getScreen()
{
View content = findViewById(R.id.TransactionLog);
content.setDrawingCacheEnabled(true);
content.buildDrawingCache(true);
Bitmap bitmap = Bitmap.createBitmap(content.getDrawingCache());
content.setDrawingCacheEnabled(false); // clear drawing cache
File file = new File(Environment.getExternalStorageDirectory() +
File.separator + "logDetails.jpeg");
try
{
file.createNewFile();
FileOutputStream ostream = new FileOutputStream(file);
bitmap.compress(CompressFormat.JPEG, 100, ostream);
ostream.flush();
ostream.close();
}
catch (Exception e)
{
e.printStackTrace();
}
if (!file.exists()) {
sendmail();
}
}
答案 0 :(得分:2)
1)你应该使用png。 Jpeg是照片(基本上)。
2)因为你正在使用Jpeg,我认为那些黑色区域会透明。 Png支持透明度。 Jpeg没有。我没有尝试过drawingCache,所以也许它也不支持透明度,我完全错了,但那是我的猜测。
所以,总结一下,试试Png。