android

时间:2016-06-01 12:07:03

标签: android animation

有没有办法像Android https://davidwalsh.name/javascript-spin

一样在Android背后的按钮后面创建光线动画

它应该在硬币后面旋转。

like this pic

光线应该在父布局的矩形内旋转。 有什么简单的方法吗?

我的代码:

final Animation animRotate = AnimationUtils.loadAnimation(context,R.anim.image_rotate);

 ImageView rl2=(ImageView) view.findViewById(R.id.ss);

rl2.startAnimation(animRotate);

and xml file:

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

2 个答案:

答案 0 :(得分:1)

您可以使用 objectAnimator 来实现此目标。

<objectAnimator
android:duration="3000"
    android:propertyName="rotation"
    android:repeatCount="infinite"
    android:repeatMode="reverse"
    android:valueTo="360"
    android:valueType="floatType" />

还有一件事 accelerate_decelerate_interpolator 会使动画在开始时加速并在结束时放慢速度。

答案 1 :(得分:1)

相对于轴心点旋转背景图像,轴心点将是图像的中心点。

ImageView img = (ImageView) view.findViewById(R.id.ss);


        RotateAnimation rotateAnimation = new RotateAnimation(0f,360f, Animation.RELATIVE_TO_SELF,0.5f, Animation.RELATIVE_TO_SELF,0.5f);
        rotateAnimation.setInterpolator(new LinearInterpolator());
        rotateAnimation.setDuration(1000);
        rotateAnimation.setRepeatCount(Animation.INFINITE);
        img.startAnimation(rotateAnimation);