我使用Android动画旋转ImageView,但运动非常不稳定

时间:2012-01-26 18:26:58

标签: android animation graphics

所以这是我的XML动画

<?xml version="1.0" encoding="utf-8"?>
<rotate 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="0" 
    android:toDegrees="360" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:duration="3000"
    android:repeatCount="infinite"
    android:interpolator="@android:anim/linear_interpolator" />

我将此应用于ImageView作为旋转图像的方法。但这一运动非常不稳定。每次图像旋转时,它似乎在旋转的两个点上跳过,彼此相隔180度。我看不出有任何理由发生这种情况,是否有人遇到这种困难并找到了解决办法?

5 个答案:

答案 0 :(得分:0)

尝试设置不同的插补器。仅供参考,在android中创建动画时使用的默认插值器不是线性插值器,而是AccelerateDecelerateInterpolator

答案 1 :(得分:0)

我不知道为什么你没有得到正确的结果。这对我有用

您可以使用动画XML文件中的内置android.R.anim.linear_interpolator

android:interpolator="@android:anim/linear_interpolator".

或者您可以在项目中创建自己的XML插值文件,例如将它命名为

RES /动画/ linear_interpolator.xml:

<?xml version="1.0" encoding="utf-8"?>
<linearInterpolator xmlns:android="http://schemas.android.com/apk/res/android" />

并添加到动画XML:

android:interpolator="@anim/linear_interpolator"

并使用

android:toDegrees="360" 

android:toDegrees="359"

360和0度相同

答案 2 :(得分:0)

模拟器始终不稳定。尝试在设备中进行调试。如果没有加速旋转。

答案 3 :(得分:0)

如果这个轮换非常重要,我想这是你UI的重要部分。

在这种情况下,您应该对简单的OpenGL实现感兴趣,它将帮助您解决问题。

我建议使用http://www.andengine.org/ - 简单易用。

AndEngineExamples上你可以找到很好的代码样本,甚至太多了!

答案 4 :(得分:-1)

尝试在drawable中创建一个xml文件并将你的drawable放在那里,代码如下,命名此文件my_progress_indeterminate.xml:

<?xml version="1.0" encoding="utf-8"?><animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/your_rotating_image"
android:pivotX="50%"
android:pivotY="50%" />

很抱歉,但是你必须把它放进去吧这样很简单,如果图像是静态的,与图像视图相同,不需要做任何不同的编码,只需在你的布局xml文件中这样写:

 <ProgressBar android:indeterminateDrawable="@drawable/my_progress_indeterminate" android:layout_height="100dp" android:layout_width="100dp"></ProgressBar>