2

Androidで仮想スピードメーターを作成しています。RotateAnimation() を使用して速度計の針を回転させます。

回転中に針の角度位置を取得する方法はありますか? つまり、針が 0 度から 360 度まで回転している場合、アニメーションの期間中に各ポイントでの針の角度を表示したいと考えています。次のコードを使用してアニメーションを実行します。

RotateAnimation rpmNeedleDeflection = new RotateAnimation(-32, 213, (float) 135, needle.getHeight()/2);
rpmNeedleDeflection.setDuration(1500);
rpmNeedleDeflection.setFillAfter(true);
needle.startAnimation(rpmNeedleDeflection);
needle.refreshDrawableState();

助けてください...よろしくお願いします。

4

2 に答える 2

4

applyTransformation をオーバーライドしてみてください

    RotateAnimation rpmNeedleDeflection = new RotateAnimation(fromDegrees, toDegrees, ...){
                protected void applyTransformation(float interpolatedTime,Transformation t) {
                    float currentDegree = fromDegrees+(toDegrees-fromDegrees)*interpolatedTime;
                    super.applyTransformation(interpolatedTime, t);
                };

            }
于 2012-07-02T04:27:24.573 に答える
2

このコードを使用して、針を最終位置に保ちます。

if(currentDegree==toDegrees)
        {
            needle.refreshDrawableState();
            RotateAnimation nrpmNeedleDeflection=new rotateAnimation(toDegrees,toDegrees...);
            nrpmNeedleDeflection.setDuration(1); 
            nrpmNeedleDeflection.setFillAfter(true);
            needle.startAnimation(nrpmNeedleDeflection);
         }
于 2012-07-24T08:31:47.430 に答える