java - 如何制作类似于Blackberry App World 的黑莓屏幕幻灯片动画?

标签 java user-interface blackberry blackberry-jde

有谁知道如何使用 blackberry JDE API 来创建类似于 Blackberry App World 中的 Featured Items 屏幕的屏幕幻灯片动画?我知道在 blackberry 5.0 中,有一些转换 api 可以执行此操作。但我希望为 4.6 版操作系统做这件事。它使用黑莓粗体的滚动球具有很好的滚动效果。

谢谢。

最佳答案

作为屏幕截图/位图方法的替代方法...

在屏幕的绘制方法中,您可以使用 Graphics.pushContext(..) 来推送剪辑区域和绘图偏移量。为获得最佳结果,您需要在可运行对象中进行转换,并在事件锁上进行同步。这将确保您的屏幕可以在转换过程中消失。

粗略的例子:

class TransitionScreen extends Screen {
    私有(private) int transitionOffset;
    私有(private) boolean 值 isTransitionHorizo​​ntal;
    私有(private) ScreenTransition currentTransition;

    公共(public) TransitionScreen( boolean  isTransitionHorizo​​ntal){
        this.isTransitionHorizo​​ntal = isTransitionHorizo​​ntal;

        transitionOffset = getTransitionMaximum();//所以屏幕开始偏移
    }

     protected 无效油漆(图形图形){
       //根据 isTransitionHorizo​​ntal 使用 transitionOffset 作为 x 或 y
        graphics.pushContext(...);
    }

    protected void onExposed() {
        transitionToOffset(0);
    }

    protected void onObscured() {
        int target = getTransitionMaximum();

        transitionToOffset(目标);
    }

    私有(private) int getTransitionMaximum() {
        返回 isTransitionHorizo​​ntal ?显示.getWidth() : Display.getHeight();
    }

    私有(private)无效 transitionToOffset(int 目标){
        如果(当前过渡!= null){
            currentTransition.stop();
        }

        currentTransition = new ScreenTransition(target);

        getApplication().invokeLater(currentTransition);
    }
}

类 ScreenTransition 实现 Runnable {
    私有(private) boolean 动画;
    私有(private) int 目标;

    公共(public) ScreenTransitionUpdater(int 目标){
        this.target = 目标;
    }

    公共(public)无效停止(){
        动画=假;
    }

    公共(public)无效运行(){
        同时(动画){
            Object eventLock = getApplication().getEventLock();

            同步(事件锁){
               //将 myOffset 插值到目标

               //如果 myOffset = target,则设置 animating = false

                无效();
            }
        }
    }
}

无需将动画标记为易变的,因为它在此平台上被忽略了。

关于java - 如何制作类似于Blackberry App World 的黑莓屏幕幻灯片动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1936178/

相关文章:

java - 停止秒表

java - 如何在不使用框架的情况下创建基于 mvc 的应用程序

java - 现有学校作业的替换项目

java - 如何在圆圈中导航

java - 需要帮助从 BrowserSession 返回到 BlackBerry 应用程序

java - `gradle jar` 好像没有给jar文件添加依赖

gwt - Java 独立应用程序的 GUI。我应该使用 SWT 还是 GWT?

java - 登录按钮在 Java 应用程序中没有可见效果

c++ - 由于后台线程上的事件,在 ui 线程上执行方法

java - Blackberry:我的 ListField 实现有什么问题?