private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { vp.setCurrentItem(msg.what); msg.what++; handler.sendEmptyMessageDelayed(msg.what,2000); } }; @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return inflater.inflate(R.layout.ffragment1,container,false); } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); vp = (ViewPager) getView().findViewById(R.id.vp1); rg = (RadioGroup)getView().findViewById(R.id.rg); rb1 = (RadioButton)getView().findViewById(R.id.rb1); rb2 = (RadioButton)getView().findViewById(R.id.rb2); rb3 = (RadioButton)getView().findViewById(R.id.rb3); rb4 = (RadioButton)getView().findViewById(R.id.rb4); rb5 = (RadioButton)getView().findViewById(R.id.rb5); rb6 = (RadioButton)getView().findViewById(R.id.rb6); initData(); pager = new MyPager(); vp.setAdapter(pager); vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { switch (position%str.length){ case 0: rb1.setChecked(true); break; case 1: rb2.setChecked(true); break; case 2: rb3.setChecked(true); break; case 3: rb4.setChecked(true); break; case 4: rb5.setChecked(true); break; case 5: rb6.setChecked(true); break; } } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } }); handler.sendEmptyMessageDelayed(0,2000); } private void initData() { new Thread(){ @Override public void run() { String s = Utils.parmrs(path); Gson gson = new Gson(); Images images = gson.fromJson(s, Images.class); List<Images.DataBean.InfosBean> infos = images.getData().getInfos(); List<Images.DataBean.InfosBean.BannersBean> banners = infos.get(0).getBanners(); int i = 0; for (Images.DataBean.InfosBean.BannersBean ban: banners) { String pic = ban.getPic(); str[i]=pic; i++; } } }.start(); } class MyPager extends PagerAdapter{ @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public Object instantiateItem(ViewGroup container, int position) { ImageView imageView = new ImageView(getActivity()); Glide.with(getActivity()).load(str[position%str.length]).placeholder(R.mipmap.ic_launcher) .into(imageView); container.addView(imageView); return imageView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } }
图片加载和viewPager结合的轮播
最新推荐文章于 2025-09-15 13:43:27 发布
本文介绍了一种使用 ViewPager 和 Handler 实现 Android 应用中图片自动轮播的方法。通过创建自定义的 PagerAdapter 来加载图片资源,并利用 Handler 定时发送消息更新 ViewPager 的当前页面,实现无缝滚动效果。
3691

被折叠的 条评论
为什么被折叠?



