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 回答