0

座標の配列を作成しました。画像の中心は、これらの座標を移動する必要があります。私はそれを達成するためにTranslateAnimationを使用しました。ただし、アニメーション中、画像は最後の2つの座標内で移動しています。以下は私のコードです:

private void CreateAnimationAndRun() {
        // move to the different coordinates one by one
        for(int k=0; k<xpoints.length; k++) {
            if(k==0) {
            x1 = xstart;
                y1 = ystart;
            } else {
            x1 = xpoints[k-1];
            y1 = ypoints[k-1];
            }
            x2 = xpoints[k];
            y2 = ypoints[k];
            TranslateAnimation translateAnimation = new TranslateAnimation(x1, x2, y1, y2);
            translateAnimation.setDuration(1000);
            translateAnimation.setAnimationListener(anim_listener);
            imv1.startAnimation(translateAnimation);
        }
    }

上記の関数は、ボタンのクリックで呼び出されました。

4

1 に答える 1

-1

自分で Android アニメーションを再生するのに数時間しかかからなかったので、これが誤解を招くものでないことを願っています。

問題は、ループが反復ごとにアニメーションを上書きしているため、実行すると最後のアニメーション (最後の 2 つのポイントの間) だけが表示されることだと思います。

代わりに、異なる開始時間でアニメーションを生成する必要があります。これまでのところ、これを行う最善の方法は、animationSet を作成し、ループを使用して、setStartOffset() を介して開始時間が異なるアニメーションをロードすることです。その後、クリックするだけで animationSet を開始できます。または、クリックでループ内にそれらを作成し、setStartTime() を使用して適切な時点で再生させることもできます。

于 2011-02-07T17:33:40.327 に答える