如何为黑莓创建图像幻灯片?

时间:2011-06-22 13:35:46

标签: user-interface blackberry blackberry-eclipse-plugin

我想要做的是点击屏幕1中的按钮,我尝试使用不同的图像和不同的转换上下文反复按屏幕2。

代码如下

public void fieldChanged(Field field, int context) 
{
        if(field==slideButton)
        {       
            for(int i=0;i<bitmaps.length;i++)
            {



                slideScreen = new SliderScreen(bitmaps[i]);

                UiApplication.getUiApplication().pushScreen(slideScreen);
                try {
                    Thread.sleep(2000);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                UiApplication.getUiApplication().popScreen(slideScreen);

            }

        }
    }
}

问题是什么都没有出现。还有其他方法可以实现这个目标。

1 个答案:

答案 0 :(得分:0)

修正了您最初想法的版本:

public void fieldChanged(Field field, int context) {
    if (field==slideButton) {

        final UiApplication app = UiApplication.getUiApplication();

        new Thread(new Runnable() {
            public void run() {
                for (int i = 0; i < bitmaps.length; i++) {
                    final SliderScreen slideScreen = 
                        new SliderScreen(bitmaps[i]);

                    app.invokeAndWait(new Runnable() {
                        public void run() {
                            app.pushScreen(slideScreen);
                        }
                    });

                    try {
                        Thread.sleep(2000);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }

                    app.invokeAndWait(new Runnable() {
                        public void run() {
                            app.popScreen(slideScreen);
                        }
                    });
                }
            }
        }).start();
    }
}

您的代码无效,因为UI线程在push和pop之间休眠,因此没有时间/机会开始绘制屏幕。注意我将整个操作移动到一个单独的线程中。所以现在主UI线程有空闲时间来实际绘图。