这是我第一次在这里提问... 我希望有人可以帮助我......
我想动画多个动画为fade in
和fade out
的图像。我能够为一个imageview制作动画,但我需要的是一旦第一个imageview淡出,第二个imageview必须淡入等等......
应该在打开应用程序后循环。感谢
这是我如何在我的java onCreate()中调用动画,
final ImageView image = (ImageView)findViewById(R.id.bsc);
final Animation animationFadeIn = AnimationUtils.loadAnimation(this, R.anim.fadein);
image.startAnimation(animationFadeIn);
final Animation animationFadeOut = AnimationUtils.loadAnimation(this, R.anim.fadeout);
image.startAnimation(animationFadeOut);
fade in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">
<alpha
android:fromAlpha="0.1"
android:toAlpha="1.0"
android:duration="2000"
/>
</set>
淡出out.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">
<alpha
android:fromAlpha="1.0"
android:toAlpha="0.1"
android:duration="2000"
/>
</set>
答案 0 :(得分:2)
尝试使用AnimationListener。
final ImageView image = (ImageView)findViewById(R.id.bsc);
final Animation animationFadeIn = AnimationUtils.loadAnimation(this, R.anim.fadein);
final Animation animationFadeOut = AnimationUtils.loadAnimation(this, R.anim.fadeout);
AnimationListener animListener = new AnimationListener(){
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
image.setImageResource(R.drawable.hsc);
image.startAnimation(animationFadeIn);
}
};
image.startAnimation(animationFadeOut);
animationFadeOut.setAnimationListener(animListener);
如果你想循环,那么也将另一个监听器放在animationFadeIn上。这将再次启动animationFadeOut。从阵列中选择图像并显示。
答案 1 :(得分:0)
在Activity.xml布局中创建一个新的ImageView,请注意我在此ImageView中没有使用属性android:src="@drawable/...."
,就像这样
<ImageView
android:id="@+id/uno"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
/>
因此,最终您的Activity.xml中将有两个imageView
1.-您的第一张图片(代码中的原件)
<ImageView
android:id="@+id/bsc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:src="@drawable/your_first_image/>
2.-没有android:src
属性的新图片
<ImageView
android:id="@+id/uno"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
/>
在您的活动类onCreate()
中定义您要使用的新图像,当然您需要将此图像保存在可绘制文件夹中,然后使用setImageResource()
方法设置图像及其drawable,代码将是这样的;
ImageView nueva = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//....your code...
nueva = (ImageView) findViewById(R.id.uno);
//Here set the new image
nueva.setImageResource(R.drawable.your_new_image);
}
现在只需要在onResume()
方法中添加动画,例如:
@Override
protected void onResume() {
super.onResume();
//the imagen you are using in your code
image.startAnimation(animationFadeOut);
//the new image fadein
nueva.startAnimation(animationFadeIn);
}