如何在设置新图像资源时设置Android动画

时间:2013-09-18 11:20:25

标签: android android-imageview android-animation

我的布局中有一个ImageView。点击一个按钮后。我这样做

Image=(ImageView)rootView.findViewById("Imagetag");
Image.setImageResource(R.drawable.image2);

我从Image1切换到Image2。我想要执行动画。任何事都会做.. Cardflip.FadeIn / Fadeout。

3 个答案:

答案 0 :(得分:3)

您必须导入:

import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.Animation.AnimationListener;

private Animation animFade;

animFade = AnimationUtils.loadAnimation(this, R.anim.fadeout);

您可以为按钮添加onClickListener并添加以下代码:

        animFade.setAnimationListener(new AnimationListener() {
            public void onAnimationStart(Animation animation) {}
            public void onAnimationRepeat(Animation animation) {}
            public void onAnimationEnd(Animation animation) {
                       // when fadeout animation ends, fade in your second image
            }
        });
        yourfirstimage.startAnimation(animFade);

使用res/anim中的动画创建一个XML文件(例如fadeout.xml):

<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
        <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:interpolator="@android:anim/accelerate_interpolator" 
android:duration="3000" android:repeatCount="0"/>
</set>

希望此代码能让您了解动画的工作原理。如果您需要更多说明,请告诉我。

注意:始终在UI线程之外进行动画。

快乐的编码。

答案 1 :(得分:1)

点击图片视图添加动画

Animation fadeIn = new AlphaAnimation(0, 1);
fadeIn.setInterpolator(new DecelerateInterpolator()); 
fadeIn.setDuration(500);

Image.setAnimation(fadeIn);

答案 2 :(得分:1)

尝试实现AnimationListener http://developer.android.com/reference/android/view/animation/Animation.AnimationListener.html 并且只需启动实现AnimationListener的新动画,就可以在任何方法中切换图像