ブラックベリーJDEAPIを使用して、ブラックベリーアプリワールドの注目アイテム画面に似た画面スライドアニメーションを作成する方法を知っている人はいますか?ブラックベリー5.0には、それを実行するためのいくつかの移行APIがあることを私は知っています。しかし、私はバージョン4.6OSでそれを実行しようとしています。ブラックベリーボールドのスクロールボールを使用した素晴らしいスクロール効果があります。
ありがとう。
ブラックベリーJDEAPIを使用して、ブラックベリーアプリワールドの注目アイテム画面に似た画面スライドアニメーションを作成する方法を知っている人はいますか?ブラックベリー5.0には、それを実行するためのいくつかの移行APIがあることを私は知っています。しかし、私はバージョン4.6OSでそれを実行しようとしています。ブラックベリーボールドのスクロールボールを使用した素晴らしいスクロール効果があります。
ありがとう。
スクリーンショット/ビットマップアプローチの代替として...
画面のpaintメソッドでは、Graphics.pushContext(..)を使用して、クリッピング領域と描画オフセットをプッシュできます。最良の結果を得るには、ランナブルで遷移を実行し、イベントロックで同期する必要があります。これにより、トランジションの途中で画面を閉じることができます。
大まかな例:
class TransitionScreen extends Screen {
private int transitionOffset;
private boolean isTransitionHorizontal;
private ScreenTransition currentTransition;
public TransitionScreen(boolean isTransitionHorizontal) {
this.isTransitionHorizontal = isTransitionHorizontal;
transitionOffset = getTransitionMaximum(); // So the screen starts offset
}
protected void paint(Graphics graphics) {
// use transitionOffset as x or y depending on isTransitionHorizontal
graphics.pushContext(...);
}
protected void onExposed() {
transitionToOffset(0);
}
protected void onObscured() {
int target = getTransitionMaximum();
transitionToOffset(target);
}
private int getTransitionMaximum() {
return isTransitionHorizontal ? Display.getWidth() : Display.getHeight();
}
private void transitionToOffset(int target) {
if (currentTransition != null) {
currentTransition.stop();
}
currentTransition = new ScreenTransition(target);
getApplication().invokeLater(currentTransition);
}
}
class ScreenTransition implements Runnable {
private boolean animating;
private int target;
public ScreenTransitionUpdater(int target) {
this.target = target;
}
public void stop() {
animating = false;
}
public void run() {
while(animating) {
Object eventLock = getApplication().getEventLock();
synchronized(eventLock) {
// Interpolate myOffset to target
// Set animating = false if myOffset = target
invalidate();
}
}
}
}
このプラットフォームでは無視されるため、アニメーションを揮発性としてマークする必要はありません。
たぶんタイマーを使って、ペイント方法で画像の座標位置を変更します