旋转图像,并且显示旋转角(Rotating an image, and displaying ang

2019-06-25 23:39发布

我想提出在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();

任何帮助,请...在此先感谢。

Answer 1:

您可以尝试重写applyTransformation

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

            }


Answer 2:

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

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


文章来源: Rotating an image, and displaying angle of rotation