当我在屏幕上绘制内容并生成视频后,我正在尝试记录Android屏幕截图。我想用“for”循环来做这个,但是当我调用getDrawingCache()方法时遇到了问题。原则上它工作正常,但如果我在调用“绘图缓存”时在屏幕上更改某些内容,则会关闭Android应用程序而不会报告错误。以下是我的源代码。
public void run() {
Bitmap screenshot;
File file;
FileOutputStream fileOutputStream;
this.view.setDrawingCacheEnabled(true);
for (long i = 1; record; i++) {
screenshot = (Bitmap) Bitmap.createBitmap(view.getDrawingCache());
file = new File(directory, "frm" + i + ".jpg");
try {
fileOutputStream = new FileOutputStream(file);
screenshot.compress(CompressFormat.JPEG, 10, fileOutputStream);
fileOutputStream.close();
ScreenshotRecorder.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
this.view.setDrawingCacheEnabled(false);
}
我已经找到了另一种获取Android屏幕录像机的方法,但我还没有找到开源应用程序。如果有人知道如何获得Android屏幕截图,我很感激。谢谢大家。
(我使用的是Xoom平板电脑和Android 3.0版本)
答案 0 :(得分:0)
我相信你需要在调用绘图缓存之前调用view.buildDrawingCache(...)
,否则将无法获得任何内容。您可以阅读有关此here.
答案 1 :(得分:0)
尝试:
view.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
view.buildDrawingCache(true);
从我的回答Here开始,以避免 null 图片