Android-图像动画未按预期工作

Android-图像动画未按预期工作,android,android-animation,Android,Android Animation,我的屏幕中央有4张可点击的图片。单击其中一个图像后,我希望图像从当前位置滑动到屏幕中心 一旦图像到达屏幕中央,我希望图像翻转,然后加载片段 如何获得完整序列?我有我的片段加载,但我不确定如何创建一个动画,幻灯片我的图像从它的当前位置的中心。该页面的布局如下所示 1 2 3 4 5 6 7 8 9 其中2、4、6、8是我要滑动的图像,5是我希望单击后滑动到的位置(然后翻转并显示我的片段) 谢谢, 德曼 编辑: private void loadFragmentAnimation(final Ima

我的屏幕中央有4张可点击的图片。单击其中一个图像后,我希望图像从当前位置滑动到屏幕中心

一旦图像到达屏幕中央,我希望图像翻转,然后加载片段

如何获得完整序列?我有我的片段加载,但我不确定如何创建一个动画,幻灯片我的图像从它的当前位置的中心。该页面的布局如下所示

1 2 3

4 5 6

7 8 9

其中2、4、6、8是我要滑动的图像,5是我希望单击后滑动到的位置(然后翻转并显示我的片段)

谢谢, 德曼

编辑:

private void loadFragmentAnimation(final ImageView view, final int slideDirection) {
        AnimationSet animSet = new AnimationSet(true);
        animSet.addAnimation(AnimationUtils.loadAnimation(getActivity(), slideDirection));
        animSet.addAnimation(AnimationUtils.loadAnimation(getActivity(), R.anim.slide_alpha));
        animSet.addAnimation(AnimationUtils.loadAnimation(getActivity(), R.anim.flip_image));
        animSet.setAnimationListener(new AnimationListener() {

            public void onAnimationStart(Animation animation) {             
            }

            public void onAnimationRepeat(Animation animation) {                
            }

            public void onAnimationEnd(Animation animation) {
                // mCallBack.categorySelected(view.getId());
            }
        });

        view.startAnimation(animSet);
    }
有一件事我无法做到,那就是事件的顺序。当前,当我单击图像时,它会等待我在flip_image.xml动画上设置的偏移量,然后在给定给flip_image.xml动画的持续时间内一次播放它们。在此方面的任何帮助都将不胜感激

幻灯片_left.xml

<?xml version="1.0" encoding="utf-8"?>
<translate 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromXDelta="0%" 
    android:toXDelta="-112%"
    android:duration="1000"/>
<?xml version="1.0" encoding="utf-8"?>
<alpha 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromAlpha="0.8"
    android:toAlpha="1.0"
    android:duration="1000" />
<?xml version="1.0" encoding="utf-8"?>
<scale
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXScale="0.0"
    android:toXScale="1.0"
    android:pivotX="50%"
    android:fromYScale="1.0"
    android:toYScale="1.0"
    android:startOffset="1000"
    android:duration="200" />
使用

  • 创建一个具有 然后是模拟翻转(您可能需要 镜像翻转另一侧的图像。可能有 更简单的方法
  • 然后使用将动画设置为
    ImageView
  • 我想您也应该能够用XML指定动画

    编辑:

    private void loadFragmentAnimation(final ImageView view, final int slideDirection) {
            AnimationSet animSet = new AnimationSet(true);
            animSet.addAnimation(AnimationUtils.loadAnimation(getActivity(), slideDirection));
            animSet.addAnimation(AnimationUtils.loadAnimation(getActivity(), R.anim.slide_alpha));
            animSet.addAnimation(AnimationUtils.loadAnimation(getActivity(), R.anim.flip_image));
            animSet.setAnimationListener(new AnimationListener() {
    
                public void onAnimationStart(Animation animation) {             
                }
    
                public void onAnimationRepeat(Animation animation) {                
                }
    
                public void onAnimationEnd(Animation animation) {
                    // mCallBack.categorySelected(view.getId());
                }
            });
    
            view.startAnimation(animSet);
        }
    
    对于翻转动画,您可以参考以下链接:


    非常感谢您的帮助,它似乎正在发挥作用。有一件事我无法做到,那就是事件的顺序。当前,当我单击图像时,它将等待我在其中一个动画上设置的偏移量,然后在仅为具有偏移量的动画指定的持续时间内一次播放所有动画。我将在上面提供我的代码。如果您在这方面有任何帮助,我们将不胜感激。@DheerajVS我已经更新了我的问题,如果您在这方面有任何帮助,我们将不胜感激