截图但创建空白文件:android?

时间:2011-06-21 06:15:15

标签: android screenshot

我正在开发android。我有以下代码来捕获屏幕截图。

设置Root布局:

View content = findViewById(R.id.layoutroot);
content.setDrawingCacheEnabled(true);

获取渲染视图的函数:

private void getScreen()
{
    View content = findViewById(R.id.layoutroot);
    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();
    }
}

我的问题是它创建了一个零kb文件。可能有什么问题?

2 个答案:

答案 0 :(得分:0)

进行这些更改,然后重试:

  • 将内容变量设为final并在活动布局上调用findViewById

    final查看内容= somelayout.findViewById(R.id.layoutroot);

答案 1 :(得分:0)

您尚未向该文件写入数据。你正在直接关闭文件,这就是为什么你得到一个0 kb的文件

使用类似的东西

try 
    {
        file.createNewFile();
        FileOutputStream ostream = new FileOutputStream(file);
        byte[] mydata = null;//data in byte array
        ostream.write(mydata);
        ostream.close();
    } 
    catch (Exception e) 
    {
        e.printStackTrace();
    }