-1

私は2つの画像の画像を翻訳したいボタンをクリックすると、その時点で左の画像が左から右に移動し、右の画像が右から左に移動します(その時点で両方の画像が中央に来てアニメーションを停止します)Androidアニメーションを使用したエミュレーター。 Androidのアニメーションが初めてです。どうすればそれを行うことができますか? コーディングは大歓迎です.Thanks..

4

2 に答える 2

2

ここですべてを説明することはできませんが、そのお手伝いをします。まず、画像ごとに 2 つの新しい XML ファイル (古いバージョンのアニメーションまたは新しいバージョンの Tween アニメーション) を作成してから、変換を使用する必要があります。例えば:

<translate android:fromXDelta="10"
    android:toXDelta="100"
    android:duration="2000"    
    />

左の画像と右の画像には数字を使用してください。次にJavaファイルで、ボタンと画像を設定します。次に、アニメーションを定義して使用します。この例はわかりやすいと思います:

    final ImageView iv1 = (ImageView) findViewById(R.id.imageView1);
    final ImageView iv2 = (ImageView) findViewById(R.id.imageView2);
    final Button b = (Button) findViewById(R.id.button1);
    b.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Animation anim = AnimationUtils.loadAnimation(main.this, R.anim.animation);
            iv1.startAnimation(anim);
            iv2.startAnimation(anim);
        }
    });

この例では、両方に 1 つのアニメーションを使用します。このサイトでは、絶対的なコードではなく、他のものから助けを得ることができることを覚えておいてください。

于 2012-05-09T12:45:44.067 に答える
1

res/anim以下のように、プロジェクトのフォルダーに2つのxmlファイルを追加します。

lefttoright.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator">
<translate android:fromXDelta="-600%" android:toXDelta="0%"
    android:fromYDelta="0%" android:toYDelta="0%" android:duration="300"
    android:zAdjustment="bottom">
</translate>

righttoleft.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator">
<translate android:fromXDelta="0%" android:toXDelta="400%"
    android:fromYDelta="0%" android:toYDelta="0%" android:duration="300"
    android:zAdjustment="bottom">
</translate>

レイアウトファイルImageViewでは、1つを画面の左側に、もう1つを画面の右側に配置します。

ボタンのonClickイベントで次のコードスニペットを使用します。

lefttoright = AnimationUtils.loadAnimation(context,
            R.anim.lefttoright);
    righttoleft = AnimationUtils.loadAnimation(context,
            R.anim.righttoleft);
imageView1.startAnimation(lefttoright);
imageView2.startAnimation(righttoleft);

次に、アニメーションリスナーを実装します。

lefttoright.setAnimationListener(new Animation.AnimationListener() {

                    @Override
                    public void onAnimationStart(Animation animation) {
                        // TODO Auto-generated method stub

                    }

                    @Override
                    public void onAnimationRepeat(Animation animation) {
                        // TODO Auto-generated method stub

                    }

                    @Override
                    public void onAnimationEnd(Animation animation) {
                        // TODO Auto-generated method stub
                        //update imageView's position (e.g. center)
                    }
                });

についても同じことを行いrighttoleftます。

それが役に立てば幸い。

于 2012-05-09T19:21:15.050 に答える