2

AndroidのAPI19トランジションを使用してTextViewをアニメーション化しています。遷移したいシーンを定義しました:

scene = Scene.getSceneForLayout(rootLayout, R.layout.my_scene, this);

トランジションを次のように定義しました。

myTransition = new ChangeBounds(); myTransition.setDuration(1000); myTransition.setInterpolator(new BounceInterpolator());

そして、移行を開始します。

TransitionManager.go(scene, myTransition);

android:textハードコーディングされている限り、すべてが機能します。次my_scene.xmlのようになります。

<merge xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
        android:id="@+id/textview1"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:text="text1"/>
</merge>

同じ ID を持つ同一の TextView がactivity_main.xmlにありますが、位置が異なります。テキストを動的に設定しようとしても、テキストsetText()は変更されません。私はこの移行 API の経験があまりないので、助けていただければ幸いです。

4

3 に答える 3

3

シーンに入るアクションを定義してから、TransitionManager で go() メソッドを呼び出します。ここにコードスニペットがあります

   scene = Scene.getSceneForLayout(rootLayout, R.layout.my_scene, this); scene.setEnterAction(new Runnable() {
    @Override
    public void run() {
      TextView textView1 = (TextView)rootLayout.findViewById(R.id.textView1);
      textView1.setText("Hello World");
    }
  }); TransitionManager.go(scene, myTransition);
于 2015-08-10T15:21:08.953 に答える
0

Scene 変数シーン 1 を初期化し、enter() を使用して初期シーンを設定することで、初期シーンを作成してみてください。

その後、シーン 1 からターゲット シーンであるシーン 2 に移行できます。さらに、シーン 1 からシーン 2 へのテキストの変更中にラグが発生することにも気付きました。これに対抗するために、TransitionListener クラスを利用して、シーンの遷移がいつ終了したかを検出しました。次に、トランジション後に setText() を使用してテキストを変更しました。

于 2015-06-15T13:58:48.927 に答える