有没有办法像Android https://davidwalsh.name/javascript-spin
一样在Android背后的按钮后面创建光线动画它应该在硬币后面旋转。
光线应该在父布局的矩形内旋转。 有什么简单的方法吗?
我的代码:
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>
答案 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);