旋转图像并显示旋转角度
Posted
技术标签:
【中文标题】旋转图像并显示旋转角度【英文标题】:Rotating an image, and displaying angle of rotation 【发布时间】:2012-07-02 12:24:27 【问题描述】:我正在 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();
任何帮助请... 提前致谢。
【问题讨论】:
【参考方案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);
;
【讨论】:
此代码无效。针根本没有偏转。 对不起,我错过了一行,super.applyTransformation(interpolatedTime, t); 谢谢哥们,它就像一个魅力。但是,一旦动画完成,针就会回到原来的位置。我希望它留在那里。有什么办法可以解决吗? 我想是的,首先将目标旋转设置为针,needle.setRotation(213) before needle.startAnimation(rpmNeedleDeflection);并尝试 我在使用 setRotation() 时遇到错误,“方法 setRotation(int) 未为 ImageView 类型定义”。我应该导入一些东西吗?【参考方案2】:使用此代码将针保持在最终位置:
if(currentDegree==toDegrees)
needle.refreshDrawableState();
RotateAnimation nrpmNeedleDeflection=new rotateAnimation(toDegrees,toDegrees...);
nrpmNeedleDeflection.setDuration(1);
nrpmNeedleDeflection.setFillAfter(true);
needle.startAnimation(nrpmNeedleDeflection);
【讨论】:
以上是关于旋转图像并显示旋转角度的主要内容,如果未能解决你的问题,请参考以下文章
Py之matplotlib:matplotlib库图表绘制中常规设置大全(交互模式清除原有图像设置横坐标显示文字/旋转角度添加图例绘图布局自动调整图像显示图像暂停)