2

アニメーションを1回転だけ回転させたい。持続時間を調整するたびに、同じ速度で回転して長く/遅くなります。どこが間違っているのですか?

private static final float ROTATE_FROM = 0.0f;
private static final float ROTATE_TO = -10.0f * 360.0f;
protected RotateAnimation r = new RotateAnimation(ROTATE_FROM, ROTATE_TO,
                                        Animation.RELATIVE_TO_SELF, 0.5f,
                                        Animation.RELATIVE_TO_SELF, 0.5f);
r.setDuration(5000);     
r.setRepeatCount(0);
r.setInterpolator(this, android.R.anim.linear_interpolator);
r.setAnimationListener(AndroidVideoPlayer.this);        
favicon.startAnimation(r);
4

2 に答える 2

2

あなたが探しているのはrepeatCount

r.setRepeatCount(0)

http://developer.android.com/reference/android/view/animation/Animation.html#setRepeatCount(int

ドキュメントから:

アニメーションを繰り返す回数を設定します。繰り返し回数が0の場合、アニメーションは繰り返されません。リピートカウントが0またはINFINITEより大きい場合、リピートモードが考慮されます。繰り返し回数はデフォルトで0です。

それとも、設定したものが何であれ、アニメーションが回転し続けると言っていdurationますか?(つまり、5000に設定すると、「終了」を超えても5秒間回転します)。その値をアニメーションの回転にかかる時間よりも短く設定するとどうなりますか?

その場合LinearInterpolator、一定の変化率をアニメートしているのはおそらくあなたです。の値を出力computeDurationHint()して、アプリケーションが期間の長さを推測できるかどうかを確認できます。

PSあなたROTATE_FROMROTATE_TO価値観は何ですか?

于 2011-08-19T21:44:56.597 に答える
1

問題だったのは-10.0fでした!

于 2011-08-28T02:59:52.787 に答える