3

当我在屏幕上绘制内容并生成视频后,我正在尝试记录 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屏幕截图,我将不胜感激。谢谢大家。

(我使用的是 Xoom Tablet 和 android 3.0 版本)

4

2 回答 2

0

我相信你需要view.buildDrawingCache(...)在调用get绘图缓存之前调用,否则将没有任何东西可以获取。您可以在此处阅读相关内容

于 2012-05-23T22:11:05.247 回答
0

尝试:

view.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
view.buildDrawingCache(true);

从我的回答这里避免图像

于 2012-05-23T22:13:22.997 回答