2012-02-17 1 views
1

my_screen1からmy_screen2の画面遷移をしたい。アイデアは、両方の画面のスクリーンショットを撮り、アニメーションを1から2に転送することです。そして、ディスプレイスタックにmy_screen2をプッシュします。しかし、の前に、画面my_screen2 のスクリーンショットを表示スタックにプッシュすることはできますか? コード:ディスプレイスタックにないときに、画面のスクリーンショットを取得するにはどうすればよいですか?ブラックベリー

Display.screenshot(bitmap); 

既にディスプレイ上ある画面のスクリーンショットを与えます。次のようなものがありますか:

my_screen2.screenshot(bitmap); 

任意のコードを入力してください。どうもありがとう!

+0

あなたがして、前の画面のスクリーンショットを撮る次のように行う。..まず最初の画面で、その後のように2番目の画面では、静的および1つのビットマップを取るように、本画面のスクリーンショットを取り、それを割り当てる場合(2番目の画面では静的と宣言されている)静的ビットマップにビットマップをドラッグし、現在の画面をポップアップして次の画面に移動すると、2番目の画面に前の画面が表示されます。私が間違っていることを理解したら、私たちに明確な考えを与えてください。 – alishaik786

+0

@ alishaik786うーん、私はあなたのアイデアが好きです - "前の画面を2番目の画面に表示"。しかし、何ですか?だから私は2番目の画面で最初の画面のビットマップを持っているが、私はまだスライディング遷移のビデオを作るために、私は次の画面のビットマップが必要なので、ユーザーが2番目の画面を 'スライド'を見ることができるようにする必要があります。どの時点で私はそれのスクリーンショットを取るべきですか? – ShoulO

+0

私の考えは、2つのビットマップを持ち、1つのビットマップを別のビットマップにスライドする簡単なビデオを作ることでした。質問は2番目のビットマップショットを取るべきですか? – ShoulO

答えて

4

ディスプレイスタックにないスクリーンまたは特定のスクリーンの下にあるスクリーンショットを撮ることはできません。ドキュメントによると、Display.screenshot()は、画面全体のスクリーンショットを取り、ビットマップに保存します。

画面遷移アニメーションを使用して画面間を移動する場合は、次の操作を実行できます。

UiEngineInstance engine = Ui.getUiEngineInstance(); 

        TransitionContext transitionContextPush = new TransitionContext(
          TransitionContext.TRANSITION_SLIDE); 
        transitionContextPush.setIntAttribute(
          TransitionContext.ATTR_DURATION, 150); 
        transitionContextPush.setIntAttribute(
          TransitionContext.ATTR_DIRECTION, 
          TransitionContext.DIRECTION_LEFT); 

        TransitionContext transitionContextPop = new TransitionContext(
          TransitionContext.TRANSITION_SLIDE); 
        transitionContextPop.setIntAttribute(
          TransitionContext.ATTR_DURATION, 150); 
        transitionContextPop.setIntAttribute(
          TransitionContext.ATTR_DIRECTION, 
          TransitionContext.DIRECTION_RIGHT); 
        transitionContextPop.setIntAttribute(
          TransitionContext.ATTR_KIND, 
          TransitionContext.KIND_OUT); 

        engine.setTransition(null, thisScreen, 
          UiEngineInstance.TRIGGER_PUSH, 
          transitionContextPush); 
        engine.setTransition(thisScreen, null, 
          UiEngineInstance.TRIGGER_POP, 
          transitionContextPop); 
       } 
       UiApplication.getUiApplication().pushScreen(thisScreen); 
+0

お返事ありがとうございます。私は4.6デバイスをターゲットにしています。あなたのコードは5.0以降で有効です。 – ShoulO

+0

4.6用に構築されたアプリケーションで、プリプロセッサを使用している場合と使用していない場合の5.0 APIのクラスは使用できません。この場合の前処理の唯一の用途は、最新のAPI additons – paulkayuk

+0

Yepを使用して、5.0以上のビルド時に4.6の特定のコードを除外することです。私のコメントを編集できませんでした。プレオス5のために、彼は移行を行う別の方法を見つけなければならないでしょう。 os5以降では彼は私の答えを使うことができます。そうするために、彼はプリプロセッサを使うことができます。 – rfsk2010

関連する問題