是否有人知道如何使用黑莓JDE API創建類似於黑莓App World中的精選項目屏幕的屏幕幻燈片動畫?我知道,在黑莓5.0中,有一些轉換apis來執行此操作。但我期待爲4.6版OS做到這一點。它使用黑莓大膽的滾動球具有很好的滾動效果。如何創建類似於黑莓App World的黑莓屏幕幻燈片動畫?
謝謝。
是否有人知道如何使用黑莓JDE API創建類似於黑莓App World中的精選項目屏幕的屏幕幻燈片動畫?我知道,在黑莓5.0中,有一些轉換apis來執行此操作。但我期待爲4.6版OS做到這一點。它使用黑莓大膽的滾動球具有很好的滾動效果。如何創建類似於黑莓App World的黑莓屏幕幻燈片動畫?
謝謝。
作爲替代截圖/位圖方案的圖像的位置...
在屏幕的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();
}
}
}
}
無需標記,因爲它是在這個平臺上忽略動畫揮發性。
也許用一個定時器來改變座標在paint方法
是的,我想我需要做類似的事情,我在其他網站上看到了一些代碼,但到目前爲止沒有任何事情與App World應用完全相同,我需要試驗然後......謝謝。 – dickyj 2009-12-23 05:00:24
感謝您的回答,希望其他人也可以找到有用的。 – dickyj 2010-07-22 11:59:44