Как сделать снимок экрана, когда его нет в стеке дисплея?ежевика - PullRequest
1 голос
/ 17 февраля 2012

Я хочу сделать переход с экрана с my_screen1 на my_screen2 . Идея состоит в том, чтобы сделать скриншот обоих экранов, и с анимацией пройти от 1 до 2. А затем нажать my_screen2 на стеке дисплея. Но могу ли я сделать скриншот экрана my_screen2 до того, как выложить его на стек дисплея? код:

 Display.screenshot(bitmap);

дает скриншот экрана, который уже на дисплее. Есть ли что-то вроде:

 my_screen2.screenshot(bitmap);

Какой-нибудь пример кода, пожалуйста? Большое спасибо!

Ответы [ 2 ]

4 голосов
/ 17 февраля 2012

См. Это решение rahul_narkhede для переходов скользящего экрана до OS5, я успешно использовал его в прошлом.

http://supportforums.blackberry.com/t5/Java-Development/Animated-Screen-transitions/td-p/162521/page/6

4 голосов
/ 17 февраля 2012

Нельзя сделать снимок экрана, которого нет в стеке дисплея или который находится ниже определенного экрана.В документах говорится, что Display.screenshot() Делает снимок экрана всего экрана и сохраняет его в растровом изображении.

Если вы хотите, чтобы анимация перехода экрана переходила с одного экрана на другой,Вы можете сделать следующее.

UiEngineInstance engine = Ui.getUiEngineInstance();

                    TransitionContext transitionContextPush = new TransitionContext(
                            TransitionContext.TRANSITION_SLIDE);
                    transitionContextPush.setIntAttribute(
                            TransitionContext.ATTR_DURATION, 150);
                    transitionContextPush.setIntAttribute(
                            TransitionContext.ATTR_DIRECTION,
                            TransitionContext.DIRECTION_LEFT);

                    TransitionContext transitionContextPop = new TransitionContext(
                            TransitionContext.TRANSITION_SLIDE);
                    transitionContextPop.setIntAttribute(
                            TransitionContext.ATTR_DURATION, 150);
                    transitionContextPop.setIntAttribute(
                            TransitionContext.ATTR_DIRECTION,
                            TransitionContext.DIRECTION_RIGHT);
                    transitionContextPop.setIntAttribute(
                            TransitionContext.ATTR_KIND,
                            TransitionContext.KIND_OUT);

                    engine.setTransition(null, thisScreen,
                            UiEngineInstance.TRIGGER_PUSH,
                            transitionContextPush);
                    engine.setTransition(thisScreen, null,
                            UiEngineInstance.TRIGGER_POP,
                            transitionContextPop);
                }
                UiApplication.getUiApplication().pushScreen(thisScreen);
...