I am using the following code to set an animation between 2 images for my SplashScreen:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
// Show A Transitions for Splash image here.
TransitionDrawable transition = (TransitionDrawable) getResources()
.getDrawable(R.drawable.splash_animation);
//Set interval for the transition between two image.
transition.startTransition(5000);
//Fetch imageView from your layout and apply transition on the same.
ImageView imageView= (ImageView) findViewById(R.id.splash_image);
imageView.setImageDrawable(transition);
}
My splash.xml is :
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ImageView
android:scaleType="fitXY"
android:id="@+id/splash_image"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/img_1" />
</RelativeLayout>
My splash_animation.xml file is :
<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/img_1"></item>
<item android:drawable="@drawable/img_2"></item>
</transition>
The transition is working fine but I wanted to know if it is possible to create it for 3 images as well. I tried adding a third image in splash_animation but the transition is only done for the first image. How can I achieve it for as many images as I want?
You can do this with any number of images.
You'll need to re-create the TransitionDrawable with the current and next item in the array and update it.
See my answer at https://stackoverflow.com/a/54584103/114549
Put the array of the
TransitionDrawable
.