我正在开发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文件。可能有什么问题?
答案 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();
}