ViewPager 自动轮播

//MainActivity

package com.example.viewpager;

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.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.RadioGroup;
import android.widget.Scroller;

public class MainActivity extends Activity {

ViewPager viewpager;

  RadioGroup group;
	List<Integer> list;
           	
Handler handler = new Handler(){
	public void handleMessage(Message msg) {
		super.handleMessage(msg);
		int currentItem = viewpager.getCurrentItem();
		currentItem++;
		viewpager.setCurrentItem(currentItem);
		sendmsg();
	};
};

public void sendmsg(){
	handler.sendEmptyMessageDelayed(1, 3000);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_main);

	viewpager = (ViewPager) findViewById(R.id.viewpager);
	group = (RadioGroup) findViewById(R.id.group);
	

	// 数据
	list = new ArrayList<Integer>();
	list.add(R.drawable.a);
	list.add(R.drawable.f);
	list.add(R.drawable.c);
	list.add(R.drawable.ff);
	list.add(R.drawable.e);
	
	
  sendmsg();
	
	viewpager.setAdapter(new Madapter());

	// 解决 刚启动无法向右滑动的问题
	viewpager.setCurrentItem(list.size()*1000);
	// 监听
	viewpager.setOnPageChangeListener(new OnPageChangeListener() {

		@Override
		public void onPageSelected(int arg0) {
			switch (arg0 % list.size()) {
			case 0:
				 //group可以选中某个ID元素
				group.check(R.id.btn1);
				break;
			case 1:
				group.check(R.id.btn2);
				break;
			case 2:
				group.check(R.id.btn3);
				break;
			case 3:
				group.check(R.id.btn4);
				break;
			case 4:
				group.check(R.id.btn5);
				
				break;
			default:
				break;
			}

		}

		@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

		}
	});

}

class Madapter extends PagerAdapter {

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

	/**
	 * 当前返回的 view和集合中的对象 是不是一个;
	 * 
	 * @param view
	 * @param object
	 * @return
	 */
	@Override
	public boolean isViewFromObject(View arg0, Object arg1) {
		// TODO Auto-generated method stub
		return arg0 == arg1;
	}

	/**
	 * 销毁当前条目,viewpager默认加载三个view, 滑动页面时,会销毁多余view;
	 * 
	 * @param container
	 * @param position
	 * @param object
	 */
	@Override
	public void destroyItem(ViewGroup container, int position, Object object) {
		// TODO Auto-generated method stub

		container.removeView((View) object);
	}

	/**
	 * 返回每个页面的view
	 * 
	 * @param container
	 * @param position
	 * @return
	 */
	@Override
	public Object instantiateItem(ViewGroup container, int position) {
		// TODO Auto-generated method stub

		ImageView img = new ImageView(MainActivity.this);
		// 设置图片
		// setImageResource 对应SRC 2进行取模进行循环使用图片
		// 下标取余;
		img.setImageResource(list.get(position % list.size()));
		img.setScaleType(ImageView.ScaleType.FIT_XY);
		container.addView(img);
		return img;
	}
}

}

//activity_main.xml

<android.support.v4.view.ViewPager
    android:id="@+id/viewpager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    />
<RadioGroup 
    android:id="@+id/group"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="100dp"
    >
    <RadioButton 
        android:id="@+id/btn1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        />
    <RadioButton 
        android:id="@+id/btn2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
    <RadioButton 
        android:id="@+id/btn3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
    <RadioButton 
        android:id="@+id/btn4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
    <RadioButton 
        android:id="@+id/btn5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
</RadioGroup>

猜你喜欢

转载自blog.csdn.net/KWON_QMY/article/details/83063721