0

画面の中央に 4 つのクリック可能な画像があります。画像の1つをクリックすると、画像が現在の位置から画面の中央にスライドします。

画像が画面の中央に到達したら、画像を反転させてフラグメントをロードしたいと思います。

この完全なシーケンスを取得するにはどうすればよいですか? フラグメントを読み込んでいますが、画像を現在の位置から中央にスライドさせるアニメーションを作成する方法がわかりません。ページのレイアウトは既知であり、次のとおりです。

1 2 3

4 5 6

7 8 9

ここで、2、4、6、8 はスライドさせたい画像で、5 はクリックしてスライドさせたい位置です (次に、フラグメントを反転して表示します)。

ありがとう、ディーマン

編集 :

発生できないことの 1 つは、イベントを順番に再生することです。現在、画像をクリックすると、flip_image.xml アニメーションに設定したオフセットを待機し、flip_image.xml アニメーションに指定された時間内に一度にすべて再生します。これに関するヘルプは大歓迎です。

slide_left.xml

<?xml version="1.0" encoding="utf-8"?>
<translate 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromXDelta="0%" 
    android:toXDelta="-112%"
    android:duration="1000"/>

slide_alpha.xml

<?xml version="1.0" encoding="utf-8"?>
<alpha 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromAlpha="0.8"
    android:toAlpha="1.0"
    android:duration="1000" />

フリップ_イメージ.xml

<?xml version="1.0" encoding="utf-8"?>
<scale
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXScale="0.0"
    android:toXScale="1.0"
    android:pivotX="50%"
    android:fromYScale="1.0"
    android:toYScale="1.0"
    android:startOffset="1000"
    android:duration="200" />

コーリング コード:

private void loadFragmentAnimation(final ImageView view, final int slideDirection) {
        AnimationSet animSet = new AnimationSet(true);
        animSet.addAnimation(AnimationUtils.loadAnimation(getActivity(), slideDirection));
        animSet.addAnimation(AnimationUtils.loadAnimation(getActivity(), R.anim.slide_alpha));
        animSet.addAnimation(AnimationUtils.loadAnimation(getActivity(), R.anim.flip_image));
        animSet.setAnimationListener(new AnimationListener() {

            public void onAnimationStart(Animation animation) {             
            }

            public void onAnimationRepeat(Animation animation) {                
            }

            public void onAnimationEnd(Animation animation) {
                // mCallBack.categorySelected(view.getId());
            }
        });

        view.startAnimation(animSet);
    }
4

1 に答える 1

0

[アニメーションを表示]を使用します。

  1. AnimationSetフリップをシミュレートするためにがTranslateAnimation 続くを作成しますScaleAnimation(フリップの反対側でイメージをミラーリングする必要がある場合があります。おそらくもっと簡単な方法がありますか?)。
  2. 次に、アニメーションをImageViewusing に設定しsetAnimation()ます。

XMLでもアニメーションを指定できるはずです。

編集:

フリップ アニメーションについては、次のリンクを参照してください。

于 2012-12-03T16:03:31.713 に答える