Есть ли способ сделать скриншот в коденамеоне (особенно для Android)? - PullRequest
3 голосов
/ 11 июня 2019

Я пытался делать снимок экрана каждую секунду, чтобы выяснить, находится ли пользователь в меню другого приложения.В Дисплее я нашел функцию с именем capturePhoto(...), но это пустая функция.Я также попробовал его с роботом, но он не поддерживается.

Я гуглил его, но нашел только текст, а не код для использования.

Функция, которую я нашел: Display.getInstance().capturePhoto(null);

Я не знаю, что там вместо нуля

1 Ответ

2 голосов
/ 11 июня 2019

Чтобы сделать снимок экрана в Codename One, вы можете использовать следующий статический метод:

    /**
     * Returns a screenshot of the currently displayed Form, or null if no form
     * is shown
     *
     * @return
     */
    public static Image getScreenshot() {
        Form form = Display.getInstance().getCurrent();
        if (form != null) {
            Image screenshot = Image.createImage(form.getWidth(), form.getHeight());
            form.paintComponent(screenshot.getGraphics(), true);
            return screenshot;
        } else {
            return null;
        }
    }

Работает на всех платформах, поддерживаемых Codename One, не только на Android.

...