Show multiple images in a imageView one after another with left to right flip effect repeatedly

后端 未结 6 1315
天命终不由人
天命终不由人 2021-02-09 20:16

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(

相关标签:
6条回答
  • 2021-02-09 20:39

    Use Gallery View in your app . Follow this tutorial

    http://www.androidinterview.com/android-gallery-view-example-displaying-a-list-of-images/

    hope this will help you friend :)

    0 讨论(0)
  • 2021-02-09 20:39
    <ViewFlipper
                android:id="@+id/imageCarouselContainer"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_above="@+id/progressSlideshow"
                android:layout_alignParentLeft="true"
                android:layout_alignParentRight="true"
                android:layout_alignParentTop="true"
                android:layout_marginBottom="0dp"
                android:animateFirstView="true"
                android:background="@color/black"
                android:flipInterval="2000"
                android:inAnimation="@anim/fade_in"
                android:orientation="vertical"
                android:outAnimation="@anim/fade_out" >
    
                <ImageView
                    android:id="@+id/imageView1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_centerVertical="true"
                    android:layout_marginRight="5dp"
                 />
    
                <ImageView
                    android:id="@+id/imageView1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_centerVertical="true"
                    android:layout_marginRight="5dp"
                 />
    
                <ImageView
                    android:id="@+id/imageView1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_centerVertical="true"
                    android:layout_marginRight="5dp"
                />
            </ViewFlipper>
    

    yourViewFlipper.startFlipping();

    0 讨论(0)
  • 2021-02-09 20:44

    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..

    0 讨论(0)
  • 2021-02-09 20:47

    use ViewFlipper or ViewPager

    i hope this will help you...

    0 讨论(0)
  • 2021-02-09 20:55

    Just use

    public class CustomGallery extends Gallery {
    
    private Handler handler;
    
    public CustomGallery(Context context) {
        super(context);
        handler = new Handler();
        postDelayedScrollNext();
    }
    
    public CustomGallery(Context context, AttributeSet attrs) {
        super(context, attrs);
        handler = new Handler();
        postDelayedScrollNext();
    }
    public CustomGallery(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        handler = new Handler();
        postDelayedScrollNext();
    }
    
    protected void postDelayedScrollNext() {
        handler.postDelayed(new Runnable() {
            public void run() {
                postDelayedScrollNext();
                Log.d("CustomGallery", "dpad RIGHT");
                onKeyDown(KeyEvent.KEYCODE_DPAD_RIGHT, null);
            }
        }, 1000);
    }
    
    protected boolean isScrollingLeft(MotionEvent e1, MotionEvent e2) {
        return e2.getX() > e1.getX();
    }
    
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
        int kEvent;
        if (isScrollingLeft(e1, e2)) {
            Log.d("CustomGallery", "fling LEFT");
            kEvent = KeyEvent.KEYCODE_DPAD_LEFT;
        } else {
            Log.d("CustomGallery", "fling LEFT");
            kEvent = KeyEvent.KEYCODE_DPAD_RIGHT;
        }
        onKeyDown(kEvent, null);
        return true;
    }
    }
    
    0 讨论(0)
  • 2021-02-09 20:58

    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);
    
        }
    
    0 讨论(0)
提交回复
热议问题