我想提出在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();
任何帮助,请...在此先感谢。
您可以尝试重写applyTransformation
RotateAnimation rpmNeedleDeflection = new RotateAnimation(fromDegrees, toDegrees, ...){
protected void applyTransformation(float interpolatedTime,Transformation t) {
float currentDegree = fromDegrees+(toDegrees-fromDegrees)*interpolatedTime;
super.applyTransformation(interpolatedTime, t);
};
}
使用此代码保持在最终位置的针:
if(currentDegree==toDegrees)
{
needle.refreshDrawableState();
RotateAnimation nrpmNeedleDeflection=new rotateAnimation(toDegrees,toDegrees...);
nrpmNeedleDeflection.setDuration(1);
nrpmNeedleDeflection.setFillAfter(true);
needle.startAnimation(nrpmNeedleDeflection);
}