Android RecyclerView的旋转和平移动画不同时运行
我正在为我的RecyclerView中的小部件添加一些动画。我希望图像从屏幕左侧开始,并在旋转时将其转换到右侧。如果我尝试自己翻译动画,效果会很好。如果我尝试自己做旋转动画,效果会很好。如果我试图同时运行它们,看起来一点都不对劲。图像在平移时遵循曲线路径。我认为它可能试图围绕翻译结束的位置旋转,但这很难说。我使用了一个AnimationSet来尝试让它工作,因为将两个动画放在一个XML中不起作用,但它没有帮助Android RecyclerView的旋转和平移动画不同时运行,android,animation,android-recyclerview,Android,Animation,Android Recyclerview,我正在为我的RecyclerView中的小部件添加一些动画。我希望图像从屏幕左侧开始,并在旋转时将其转换到右侧。如果我尝试自己翻译动画,效果会很好。如果我尝试自己做旋转动画,效果会很好。如果我试图同时运行它们,看起来一点都不对劲。图像在平移时遵循曲线路径。我认为它可能试图围绕翻译结束的位置旋转,但这很难说。我使用了一个AnimationSet来尝试让它工作,因为将两个动画放在一个XML中不起作用,但它没有帮助 translation_to_right.xml <?xml version=&
translation_to_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="-100%"
android:toXDelta="0%"
android:duration="3000"
android:interpolator="@android:interpolator/accelerate_decelerate"/>
/>
</set>
您可以将
视图
放入周围的视图组
,例如框架布局
,使其即使在旋转时也能装入内部。然后将旋转应用于视图
,将平移应用于框架布局
rotate.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:fromDegrees="0"
android:toDegrees="360"
android:pivotX="50%"
android:pivotY="50%"
android:duration="3000"
/>
</set>
@Override
public void onBindViewHolder(@NonNull RecyclerViewHolder holder, int position) {
Animation translateRight = AnimationUtils.loadAnimation(parentContext, R.anim.translation_to_right);
Animation rotate = AnimationUtils.loadAnimation(parentContext, R.anim.rotate);
AnimationSet animationSet = new AnimationSet(false);
animationSet.addAnimation(translateRight);
animationSet.addAnimation(rotate);
holder.imageView.startAnimation(animationSet);
...