Android - 图像动画无法正常工作

时间:2012-12-03 15:44:31

标签: android android-animation

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

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

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

1 2 3

4 5 6

7 8 9

其中2,4,6,8是我想要滑动的图像,5是我希望它们在点击时滑动到的位置(然后翻转并显示我的片段)。

谢谢, DMAN

编辑:

我无法发生的一件事是按顺序播放的事件。目前,当我单击图像时,它会等待我在flip_image.xml动画上设置的偏移量,然后在给予flip_image.xml动画的持续时间内一次性播放它们。对此有任何帮助将非常感激。

slide_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"/>

slide_alpha.xml

<?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" />

flip_image.xml

<?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" />

致电代码:

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);
    }

1 个答案:

答案 0 :(得分:0)

使用View animation

  1. 创建一个AnimationSet TranslateAnimation 然后是ScaleAnimation来模拟翻转(你可能需要 镜像翻转另一侧的图像。也许就是这样 一种更简单的方法?)。
  2. 然后使用动画将动画设置为ImageView setAnimation()
  3. 我猜你也应该能够用XML指定动画。

    修改

    对于翻转动画,您可以参考以下链接: