有人请帮我解决这个问题,我尝试在没有画布的情况下捕获全屏,每次都会得到黑屏图像。我发现的另一个有趣的事情是,当我在手机上打开该图像并将其删除时,会出现另一个带有图像的屏幕。我不知道它是如何发生的,因为我是 android 应用程序开发的新手。
任何人都可以帮我找到解决方案吗?
在 SO 中的快速搜索给了我这个有一个公认的答案。你可能想看看它。SO 来源: 截图
报价:
你可以这样做,
为您的主布局提供 id 并在屏幕上显示内容后,在某些侦听器上编写以下代码,例如按钮单击或菜单项或任何此类侦听器(确保在显示布局后调用这些行,否则它将给出黑屏)。
View content = findViewById(R.id.myLayout);
content.setDrawingCacheEnabled(true);
getScreen(content);
method getScreen(content)
private void getScreen(View content)
{
Bitmap bitmap = content.getDrawingCache();
File file = new File("/sdcard/test.png");
try
{
file.createNewFile();
FileOutputStream ostream = new FileOutputStream(file);
bitmap.compress(CompressFormat.PNG, 100, ostream);
ostream.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
也不要添加将文件写入 SDCard 的权限。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">
</uses-permission>