【问题标题】:Splash screen in BlackBerry applicationBlackBerry 应用程序中的启动画面
【发布时间】:2011-06-13 12:35:26
【问题描述】:

我正在开发一个 BlackBerry 应用程序,该应用程序在启动时需要启动画面。我还没有找到任何实现闪屏的示例。

我在应用程序的启动类中使用了一个计时器来显示启动图像。 有没有其他方法可以解决这个问题?

【问题讨论】:

    标签: blackberry java-me splash-screen


    【解决方案1】:

    要为 BlackBerry 智能手机应用程序创建启动屏幕,必须扩展 MainScreen 类,需要使用键和导航事件,并且可以使用计时器在一定时间后关闭屏幕。

    
    public class SplashScreen extends MainScreen {
       private MainScreen next;
       private UiApplication application;
       private Timer timer = new Timer();
       private static final Bitmap _bitmap = Bitmap.getBitmapResource("image.png");
       public SplashScreen(UiApplication ui, MainScreen next) {
          super(Field.USE_ALL_HEIGHT | Field.FIELD_LEFT);
          this.application = ui;
          this.next = next;
          this.add(new BitmapField(_bitmap));
          SplashScreenListener listener = new SplashScreenListener(this);
          this.addKeyListener(listener);
          timer.schedule(new CountDown(), 5000);
          application.pushScreen(this);
       }
       public void dismiss() {
          timer.cancel();
          application.popScreen(this);
          application.pushScreen(next);
       }
       private class CountDown extends TimerTask {
          public void run() {
             DismissThread dThread = new DismissThread();
             application.invokeLater(dThread);
          }
       }
       private class DismissThread implements Runnable {
          public void run() {
             dismiss();
          }
       }
       protected boolean navigationClick(int status, int time) {
          dismiss();
          return true;
       }
       protected boolean navigationUnclick(int status, int time) {
          return false;
       }
       protected boolean navigationMovement(int dx, int dy, int status, int time) {
          return false;
       }
       public static class SplashScreenListener implements
          KeyListener {
          private SplashScreen screen;
          public boolean keyChar(char key, int status, int time) {
             //intercept the ESC and MENU key - exit the splash screen
             boolean retval = false;
             switch (key) {
                case Characters.CONTROL_MENU:
                case Characters.ESCAPE:
                screen.dismiss();
                retval = true;
                break;
             }
             return retval;
          }
          public boolean keyDown(int keycode, int time) {
             return false;
          }
          public boolean keyRepeat(int keycode, int time) {
             return false;
          }
          public boolean keyStatus(int keycode, int time) {
             return false;
          }
          public boolean keyUp(int keycode, int time) {
             return false;
          }
          public SplashScreenListener(SplashScreen splash) {
             screen = splash;
          }
       }
    } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-22
      • 2011-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多