私には がいて、GridView
その子供はImageViews
です。それは 3x3GridView
です。ユーザーが特定のボタンを押すと、Button
これらの子の順序が (ランダムに) 変更されます。
より動的にするために、ユーザーがボタンをクリックしたときにアニメーションを適用することにしました。各子を最終的な位置に配置する前に、画面内の 3 つのランダムな位置に移動します。最後に、ユーザーがボタンをクリックすると、各 ImageView (子) が 3 つのランダムな位置に移動し、GridView 内の最終的な位置に移動します。
このアニメーションを Galaxy S と同様のデバイスでテストしたところ、問題なく動作しました。しかし、今日、Galaxy S III でテストしたところ、奇妙なことが起こりました。最初の画像 (mGrid.getChildAt(0)) を除くすべての画像が移動します。最初の子はその位置 (0,0) にとどまり、アニメーションが終了すると、最終的な位置に直接移動します。さらに奇妙なことに、アニメーション中に ImageView の位置を確認したところ、画像が動いていると表示されました。
アニメーションを実行するには、TweenEngine ( http://code.google.com/p/java-universal-tween-engine/ )を使用しています。
for(int n=0; n<3; n++){
Timeline parallel = tl.beginParallel();
for(int i=0; i<mGrid.getChildCount(); i++){
int x = r.nextInt(width);
int y = r.nextInt(height);
parallel.push(Tween.to(mGrid.getChildAt(i), ViewAccessor.POSITION_XY, 0.35f).target(x, y));
}
parallel.end();
}
私の ViewAccessor では、target.setX と target.setY を使用しています。ImageView が移動したかどうかを確認するには、getX() と getY() を使用します。
なぜこれが起こっているのか知っている人はいますか?
ありがとう!