一个接一个地在imageView中显示多个图像,重复从左到右翻转效果

Sri*_*dev 6 android

假设我在drawable文件夹中有多个图像(ex-8图像).我希望一个接一个地在一个imageView中显示所有这些图像,并重复从左到右翻转效果(ex-img[0],img[1],……img[8],img[0],img[1],…………).我怎样才能做到这一点?

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);         
}
Run Code Online (Sandbox Code Playgroud)

Har*_*ana 6

使用自定义函数旋转图像使用处理程序间隔来改变图像,这里我改变图像反方向:

    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);

    }
Run Code Online (Sandbox Code Playgroud)


Vin*_*ino 6

使用ViewFlipperImageViewViewFlipper 中添加您的内容

布局文件:

<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>
Run Code Online (Sandbox Code Playgroud)

然后在您的活动中添加以下代码。

ViewFlipper viewFlipper = (ViewFlipper)findViewById(R.id.flipperid);
Run Code Online (Sandbox Code Playgroud)

现在您可以通过调用开始自动翻转图像 viewFlipper.startFlipping();

希望能帮到你..