![]() |
VOOZH | about |
Android ImageSwitcher is a user interface widget that provides a smooth transition animation effect to the images while switching between them to display in the view. ImageSwitcher is subclass of View Switcher which is used to animates one image and displays next one. Generally, we use ImageSwitcher in two ways manually in XML layout and programmatically in Kotlin file.
We should define an XML component, to use ImageSwitcher in our android application.
<ImageSwitcher
android:id="@+id/view"
android:layout_width="match_parent"
android:layout_height="match_parent">
</ImageSwitcher>
| XML attributes | Description |
|---|---|
| android:id | Used to specify the id of the view. |
| android:onClick | Used to specify the action when this view is clicked. |
| android:background | Used to set the background of the view. |
| android:padding | Used to set the padding of the view. |
| android:visibility | Used to set the visibility of the view. |
| android:inAnimation | Used to define the animation to use when view is shown. |
| android:outAnimation | Used to define the animation to use when view is hidden. |
| android:animateFirstView | Used to define whether to animate the current view when the view animation is first displayed. |
First we create a new project by following the below steps:
In this file, we use constraint layout with ImageSwitcher and Buttons.
activity_main.xml:
Different methods of ImageSwitcher widget:
First, we declare an array which contains the resource of the images used for the ImageView.
private val array = intArrayOf(R.drawable.grape, R.drawable.guava, R.drawable.orange)then, we access the ImageSwitcher from the XML layout and set ImageView to display the image.
val imgSwitcher: ImageSwitcher = findViewById(R.id.imageSwitcher)
imgSwitcher.setFactory({
val imgView = ImageView(applicationContext)
imgView.scaleType = ImageView.ScaleType.FIT_CENTER
imgView.setPadding(8, 8, 8, 8)
imgView
})
Also, we will use one of the above method for ImageSwitcher.
imgSwitcher.setImageResource(array[index])MainActivity.kt:
Click next button then we get the other animated image in the View.