Suppose I have multiple images in drawable folder(ex-8 images). I want to show all these images in a imageView one after another with left to right flip effect repeatedly(ex-img[0],img[1],……img[8],img[0],img[1],…………
). How can I do this?
private void AnimateandSlideShow() {
image1 = (ImageView)findViewById(R.id.imageView1);
image1.setImageResource(img[currentimageindex1%img.length]);
currentimageindex1++;
Animation rotateimage = AnimationUtils.loadAnimation(this, R.anim.custom_anim);
image1.startAnimation(rotateimage);
}
Use custom function rotate image using handler for interval to change image,here i change image vice verse direction :
private ImageView image1;
private int[] imageArray;
private int currentIndex;
private int startIndex;
private int endIndex;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
image1 = (ImageView)findViewById(R.id.imageView1);
imageArray = new int[8];
imageArray[0] = R.drawable.one;
imageArray[1] = R.drawable.two;
imageArray[2] = R.drawable.three;
imageArray[3] = R.drawable.four;
imageArray[4] = R.drawable.five;
imageArray[5] = R.drawable.six;
imageArray[6] = R.drawable.seven;
imageArray[7] = R.drawable.eight;
startIndex = 0;
endIndex = 7;
nextImage();
}
public void nextImage(){
image1.setImageResource(imageArray[currentIndex]);
Animation rotateimage = AnimationUtils.loadAnimation(this, R.anim.custom_anim);
image1.startAnimation(rotateimage);
currentIndex++;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
if(currentIndex>endIndex){
currentIndex--;
previousImage();
}else{
nextImage();
}
}
},1000); // here 1000(1 second) interval to change from current to next image
}
public void previousImage(){
image1.setImageResource(imageArray[currentIndex]);
Animation rotateimage = AnimationUtils.loadAnimation(this, R.anim.custom_anim);
image1.startAnimation(rotateimage);
currentIndex--;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
if(currentIndex<startIndex){
currentIndex++;
nextImage();
}else{
previousImage(); // here 1000(1 second) interval to change from current to previous image
}
}
},1000);
}
Use ViewFlipper and add your ImageView
inside the ViewFlipper.
Layout file:
<ViewFlipper
android:layout_width="match_parent"
android:layout_height="330dp"
android:layout_below="@id/textViewid"
android:layout_marginTop="20dp"
android:id="@+id/flipperid"
android:layout_centerInParent="true"
android:flipInterval="4000"
android:elevation="5dp">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/pic1"
android:scaleType="fitCenter"
android:layout_gravity="center_horizontal"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/pic2"
android:scaleType="fitCenter"
android:layout_gravity="center_horizontal"/>
</ViewFlipper>
Then add below code in your activity.
ViewFlipper viewFlipper = (ViewFlipper)findViewById(R.id.flipperid);
and now you can start flipping the images automatically by calling viewFlipper.startFlipping();
Hope this will help you..
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With