0

有人请帮我解决这个问题,我尝试在没有画布的情况下捕获全屏,每次都会得到黑屏图像。我发现的另一个有趣的事情是,当我在手机上打开该图像并将其删除时,会出现另一个带有图像的屏幕。我不知道它是如何发生的,因为我是 android 应用程序开发的新手。

任何人都可以帮我找到解决方案吗?

4

1 回答 1

2

在 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>
于 2012-06-19T13:12:09.963 回答