Android's AdapterViewFilpper control realizes the carousel diagram

Implementation steps

1. There is an AdapterViewFilpper control

2. Prepare the picture resource under the drawable folder, and use the array to save the picture resource array in MainActivity

3. Add an adapter for AdapterViewFilpper

4. The control has some methods such as showPrevious, showNext, stopFlipping, startFlipping.

showPrevious play forward showNext play
backward
stopFlipping stop auto play
startFlipping start auto play
There is also a flipInterval in the xml code that can set the play event, the code is as follows

Example code:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

   <AdapterViewFlipper
       android:layout_width="400dp"
       android:layout_height="500dp"
       android:id="@+id/flipper"
       android:flipInterval="5000"
       />
    <LinearLayout
        android:layout_marginTop="30dp"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">
    <Button

        android:id="@+id/button"
        android:layout_width="100dp"
        android:layout_height="50dp"
      android:text="上一个"
        android:layout_marginBottom="8dp"/>
    <Button

        android:id="@+id/button2"
        android:layout_width="100dp"
        android:layout_height="50dp"
        android:text="下一个"

        android:layout_marginBottom="8dp"/>
    <Button

        android:id="@+id/button3"
        android:layout_width="100dp"
        android:layout_height="50dp"
        android:text="自动播放"

        android:layout_marginBottom="8dp"/>

        </LinearLayout>

</LinearLayout>

Insert picture description here


import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterViewFlipper;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    
    
private  int[] imageIds=new int[]{
    
    R.drawable.gjiaoshi,R.drawable.guanjiaoshi0,R.drawable.guanxuesheng0,R.drawable.gxuesheng};
private AdapterViewFlipper adapterViewFlipper;
    Button button,button2,button3;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        adapterViewFlipper=findViewById(R.id.flipper);
        final BaseAdapter adapter=new BaseAdapter() {
    
    
            @Override
            public int getCount() {
    
    
                return imageIds.length;
            }

            @Override
            public Object getItem(int i) {
    
    
                return i;
            }

            @Override
            public long getItemId(int i) {
    
    
                return i;
            }
  /**
  *主要步骤在getView方法里面
  */
  
            @Override
            public View getView(int i, View view, ViewGroup viewGroup) {
    
    
                ImageView imageView;
                if(view==null){
    
    
                    //创建一个imageView
                    imageView=new ImageView(MainActivity.this);
                }else{
    
    
                    imageView= (ImageView) view;
                }
                imageView.setImageResource(imageIds[i]);
                imageView.setScaleType(ImageView.ScaleType.FIT_XY);
                imageView.setLayoutParams(new ViewGroup.LayoutParams(
                        ViewGroup.LayoutParams.MATCH_PARENT,
                        ViewGroup.LayoutParams.MATCH_PARENT
                ));
                return  imageView;
            }
        };
        //添加适配器
        adapterViewFlipper.setAdapter(adapter);
        //为按钮设置点击事件
button=findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
    
    
    @Override
    public void onClick(View view) {
    
    
        adapterViewFlipper.showPrevious();
        adapterViewFlipper.stopFlipping();
    }
});
        button2=findViewById(R.id.button2);
        button2.setOnClickListener(new View.OnClickListener() {
    
    
            @Override
            public void onClick(View view) {
    
    
                adapterViewFlipper.showNext();
                adapterViewFlipper.stopFlipping();
            }
        });

        button3=findViewById(R.id.button3);
        button3.setOnClickListener(new View.OnClickListener() {
    
    
            @Override
            public void onClick(View view) {
    
    

                adapterViewFlipper.startFlipping();
            }
        });
    }


}

Insert picture description here

Guess you like

Origin blog.csdn.net/qq_45353823/article/details/107499836