无限轮播图的代码

//布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="300dp"
    tools:context="${relativePackage}.${activityClass}" >

    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <RadioGroup
        android:id="@+id/radioGroup1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:orientation="horizontal" >
    </RadioGroup>

</RelativeLayout>

//页面

package com.example.lunbt1;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;

public class MainActivity extends Activity {

    private ViewPager pager;
    private RadioGroup radio;
    // 设置图片(数组)
    private int[] image = new int[] { R.drawable.q, R.drawable.t, R.drawable.v,
            R.drawable.w, R.drawable.x };
    private List<ImageView> list;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 1找控件
        pager = (ViewPager) findViewById(R.id.viewPager);
        radio = (RadioGroup) findViewById(R.id.radio);
        //创建一个list集合用来存图片
        list = new ArrayList<ImageView>();
        //循环查看图片
        for (int i = 0; i < image.length; i++) {
            //
            ImageView imageView = new ImageView(MainActivity.this);
            // 把图片存入imageview
            imageView.setBackgroundResource(image[i]);
            // 添加到list集合
            list.add(imageView);
        }
        //适配器
        pager.setAdapter(new VpAdapter(MainActivity.this, list));
        // 循环查找图片
        initData();
        pager.setOnPageChangeListener(new OnPageChangeListener() {

            @Override
            public void onPageSelected(int position) {
                // TODO Auto-generated method stub
                int i = position % list.size();
                radio.check(i);
            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onPageScrollStateChanged(int arg0) {
                // TODO Auto-generated method stub

            }

        });
        handler.sendEmptyMessage(0);
    }

    

    private void initData() {
        // TODO Auto-generated method stub
        for (int i = 0; i < image.length; i++) {
            RadioButton radioButton = new RadioButton(MainActivity.this);
            radioButton.setId(i);
            radio.addView(radioButton);
            radio.check(0);
        }
    }

    Handler handler = new Handler() {
        public void handleMessage(Message msg) {
            // TODO Auto-generated method stub
            super.handleMessage(msg);
            switch (msg.what) {
            case 0:
                pager.setCurrentItem(pager.getCurrentItem() + 1);
                handler.sendEmptyMessageDelayed(0, 1000);
                break;
            default:
                break;
            }
        }
    };

}


//另一个

package com.example.lunbt1;

import java.util.List;

import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

public class VpAdapter extends PagerAdapter {

    private Context context;
    private List<ImageView> list;

    

    public VpAdapter(Context context, List<ImageView> list) {
        super();
        this.context = context;
        this.list = list;
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return Integer.MAX_VALUE;
    }

    @Override
    public boolean isViewFromObject(View arg0, Object arg1) {
        // TODO Auto-generated method stub
        return arg0 == arg1;
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        // TODO Auto-generated method stub
        int i = position % list.size();
        ImageView imageView = list.get(i);
        container.addView(imageView);
        return imageView;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        // TODO Auto-generated method stub
        container.removeView((View) object);
    }

}

猜你喜欢

转载自blog.csdn.net/cxx13700/article/details/82798844