有谁知道如何使用 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 值 isTransitionHorizontal;
私有(private) ScreenTransition currentTransition;
公共(public) TransitionScreen( boolean isTransitionHorizontal){
this.isTransitionHorizontal = isTransitionHorizontal;
transitionOffset = getTransitionMaximum();//所以屏幕开始偏移
}
protected 无效油漆(图形图形){
//根据 isTransitionHorizontal 使用 transitionOffset 作为 x 或 y
graphics.pushContext(...);
}
protected void onExposed() {
transitionToOffset(0);
}
protected void onObscured() {
int target = getTransitionMaximum();
transitionToOffset(目标);
}
私有(private) int getTransitionMaximum() {
返回 isTransitionHorizontal ?显示.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/