ViewPager實現簡易輪播圖
阿新 • • 發佈:2019-01-23
介面卡:
public class MyAdapter extends PagerAdapter { private Context context; private List<Integer> list; public MyAdapter(Context context, List<Integer> list) { super(); this.context = context; this.list = list; } //總數 @Override public int getCount() { return Integer.MAX_VALUE;//最大值 } //得到的檢視與新增進來的是否一致 如果一致 返回true @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0==arg1; } //建立檢視 @Override public Object instantiateItem(ViewGroup container, int position) { //建立ImageView ImageView imageView = new ImageView(context); //設定圖片 src 按照比例進行展示圖片 Background 全部充滿展示 imageView.setImageResource(list.get(position%list.size()));//通過取模的形式 在list集合中取出圖片 //getResources res檔案 // imageView.setBackground(context.getResources().getDrawable(list.get(position))); //拉伸 imageView.setScaleType(ScaleType.FIT_XY); container.addView(imageView); return imageView; } //刪除檢視 @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } }
MainActivity:
public class MainActivity extends Activity { private ViewPager view_pager; private RadioGroup radio_group; private List<Integer> list; private Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { msg.what++; view_pager.setCurrentItem(msg.what); handler.sendEmptyMessageDelayed(msg.what, 1500); super.handleMessage(msg); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); view_pager = (ViewPager) findViewById(R.id.view_pager); radio_group = (RadioGroup) findViewById(R.id.radio_group); list = new ArrayList<Integer>(); list.add(R.drawable.g1); list.add(R.drawable.g2); list.add(R.drawable.g3); list.add(R.drawable.g4); list.add(R.drawable.g5); MyAdapter adapter = new MyAdapter(MainActivity.this,list); view_pager.setAdapter(adapter); //將當前預設展示的圖片 設定在中間 view_pager.setCurrentItem(list.size()*10000); //得到圖片的位置 //延遲1秒 執行runnable handler.sendEmptyMessageDelayed(view_pager.getCurrentItem(), 1500); //頁選中監聽 view_pager.setOnPageChangeListener(new OnPageChangeListener() { //選擇的頁 @Override public void onPageSelected(int arg0) { //當選中第?頁時,選擇對應的Button switch (arg0%list.size()) { case 0: radio_group.check(R.id.radio1); break; case 1: radio_group.check(R.id.radio2); break; case 2: radio_group.check(R.id.radio3); break; case 3: radio_group.check(R.id.radio4); break; case 4: radio_group.check(R.id.radio5); break; default: break; } } //頁的偏移量 @Override public void onPageScrolled(int arg0, float arg1, int arg2) {} //頁的狀態 @Override public void onPageScrollStateChanged(int arg0) {} }); } }