Android屏幕录像机

时间:2012-05-23 22:05:20

标签: android

当我在屏幕上绘制内容并生成视频后,我正在尝试记录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版本)

2 个答案:

答案 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 图片