android animated-rotate 不会逆时针旋转

10 浏览
0 Comments

android animated-rotate 不会逆时针旋转

我正在尝试在Android 4.1中使用旋转的可绘制对象来获得自定义的不确定ProgressBar。我的做法如下:

 

看起来fromDegreestoDegrees参数似乎不起作用,图像只能顺时针旋转,但我需要逆时针旋转。当我将animated-rotate更改为rotate时,它们开始起作用,但这不是我想要的。有什么建议可以使其工作吗?

enter image description here

0
0 Comments

问题出现的原因:在android中使用animated-rotate动画时,想要实现逆时针旋转的效果,但是设置fromDegrees为360,toDegrees为0时,却无法实现逆时针旋转。

解决方法:将fromDegrees设置为0,toDegrees设置为360即可实现逆时针旋转效果。

0
0 Comments

问题的原因是使用了非公开的API <animated-rotate>,关于这个API没有官方文档,而且不管你设置了什么数值,它都会忽略fromDegreestoDegrees属性。只要移除这两个属性,它依然会旋转。

在文中提到的唯一一个简单的XML解决方法是使用<rotate>标签,示例如下:

<rotate xmlns:android="http://schemas.android.com/apk/res/android"
  android:drawable=":drawable/ic_lock_power_off"
  android:pivotX="50%"
  android:pivotY="50%"
  android:fromDegrees="0"
  android:toDegrees="-360" />

如果你想要设置更慢或者更快的帧率,可以参考这篇回答:https://stackoverflow.com/a/14996762/413127

尽管这个API不是公开的,为什么还能正常工作呢?我没有使用外部库。很难说没有看到代码。看看我的ProgressBar,'rotate'只是简单地旋转,没有其他动画效果。而'animated-rotate'则像真正的逐帧动画一样流畅。这就是我想要自定义它的原因。

正如我之前所说,阅读我给出的stackoverflow的回答,你可以控制帧率。

0