旋转图像,并显示旋转角度

时间:2012-07-02 04:18:08

标签: android rotation android-imageview angle

我正在安装一个虚拟车速表。 我使用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();

任何帮助请... 提前谢谢。

2 个答案:

答案 0 :(得分: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);
                };

            }

答案 1 :(得分:2)

使用此代码将针头保持在最终位置:

if(currentDegree==toDegrees)
        {
            needle.refreshDrawableState();
            RotateAnimation nrpmNeedleDeflection=new rotateAnimation(toDegrees,toDegrees...);
            nrpmNeedleDeflection.setDuration(1); 
            nrpmNeedleDeflection.setFillAfter(true);
            needle.startAnimation(nrpmNeedleDeflection);
         }