我正在安装一个虚拟车速表。 我使用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();
任何帮助请... 提前谢谢。
答案 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);
}