Handler实现的无限自动轮播
2017-10-23 00:40
369 查看
xml布局文件写一个ViewPager
在java代码中(Activity,或Fragment,根据实际情况定,看你的ViewPager写在哪了):通过id找到控件
设置轮播
//viewpager适配器,自己创建一个类,来继承PagerAdapter,重写4个方法
<android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="200dp"> </android.support.v4.view.ViewPager>
在java代码中(Activity,或Fragment,根据实际情况定,看你的ViewPager写在哪了):通过id找到控件
//找到控件 viewpager = view.findViewById(R.id.viewpager);
设置轮播
//设置轮播的方法 private void setViewPager() { //请求网络图片 final String path = "接口地址"; //参数一,上下文,参数二:网络地址,参数三:接口中new 了一个接口,重写了一个方法 //(接口中的这个方法在获取网络数据的工具类中调用,这里用作回调) NetDataUtil.getData(getActivity(), path, new JsonStringCallaBack() { @Override public void getJsonData(String json) { //存放网络图片的集合 List<String> image_url_list = new ArrayList<String>(); Gson gson = new Gson(); //解析 DataDataBean dataDataBean = gson.fromJson(json, DataDataBean.class); List<DataDataBean.NewslistBean> newslist = dataDataBean.getNewslist(); //遍历网络集合,拿到图片地址,装到存放图片的集合中 for (int b=0; b<5; b++){ DataDataBean.NewslistBean newslistBean = newslist.get(b); String picUrl = newslistBean.getPicUrl(); Log.d("TAG","图片地址为:"+picUrl); image_url_list.add(picUrl); } //设置适配器 pager = new MyViewPager(getActivity(), image_url_list); viewpager.setAdapter(pager); //设置显示中间位置 viewpager.setCurrentItem(image_url_list.size()*1000000); //通过handler发送延时消息,没过两秒发送一次 handler.sendEmptyMessageDelayed(0,2000); } }); }//Handler接收消息,并重新设置图片
Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { if (msg.what==0){ viewpager.setCurrentItem(viewpager.getCurrentItem()+1); handler.sendEmptyMessageDelayed(0,2000); } } };
//viewpager适配器,自己创建一个类,来继承PagerAdapter,重写4个方法
public class MyViewPager extends PagerAdapter { Context context; List<String> image_url_list; public MyViewPager(Context context, List<String> image_url_list) { this.context=context; this.image_url_list=image_url_list; } @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(context); imageView.setScaleType(ImageView.ScaleType.FIT_XY); ImageLoader.getInstance().displayImage(image_url_list.get(position%image_url_list.size()),imageView, ImageLoderUtils.getDefaultOption()); container.addView(imageView); return imageView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } }
相关文章推荐
- 使用Handler中postDelayed方法实现广告页面无限循环轮播效果
- Android高仿京东淘宝自动无限循环轮播控件的实现思路和过程
- android ViewPager实现自动无限轮播和下方向导圆点
- ViewPager轮播图:自动无限轮播,手指长按停止,实现点击事件(实用版)
- Android实现图片自动轮播并且支持手势左右无限滑动
- android轮播图简单实现(左右无限滑动,自动轮播)
- Rxjava实践-用Rxjava代替handler实现无限轮播图
- Android实现图片自动轮播并且支持手势左右无限滑动
- Swift仿选择电影票的效果并实现无限/自动轮播的方法
- Android使用viewpager实现自动无限轮播图
- 自定义轮播图,实现无限轮播、自动轮播、按下停止轮播
- Android 开发中 用Banner实现无限(自动)轮播
- Android 3D画廊采用Gallery实现无限循环、自动轮播
- 使用handler实现轮播图无限轮播时报 unfortunately 程序名 has stopped错误
- 使用ViewPager实现自动无限循环的轮播
- 用Handler实现轮播图的自动轮播,并监听用户划动重新计时
- XBanner的使用实现无限自动轮播图
- Android XBanner实现自动无限轮播
- UIScrollView 实现广告栏的无限轮播(可设置自动播放时间)
- swiper 自动图片无限轮播实现代码