无限轮播
来源:互联网 发布:小丽和小云在计算 编辑:程序博客网 时间:2024/06/03 11:23
1.activity
AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() { @Override protected String doInBackground(Void... params) { String path ="http://v.juhe.cn/toutiao/index?type=yule&key=61005cfc63a8075c88d5d408ba90aff9"; try { URL url = new URL(path); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setReadTimeout(5000); connection.setConnectTimeout(5000); int responseCode = connection.getResponseCode(); if (responseCode==200){ InputStream inputStream = connection.getInputStream(); String json = getstring(inputStream,"utf-8"); return json; } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { // Log.d("TAG","+++++++++++++++++++"+s); if (s!=null){ Gson gson = new Gson(); Bean bean = gson.fromJson(s, Bean.class); List<Bean.ResultBean.DataBean> data = bean.getResult().getData(); vp.setAdapter(new Myadapter(MainActivity.this,data,handler)); handler.sendEmptyMessageDelayed(0,3000); indic(data); vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { for (int i=0;i<imgs.size();i++){ if (i==position%imgs.size()){ imgs.get(i).setImageResource(R.drawable.sha1); }else{ imgs.get(i).setImageResource(R.drawable.sha2); } } } @Override public void onPageScrollStateChanged(int state) { } }); } } }; asyncTask.execute();}private void indic(List<Bean.ResultBean.DataBean> data) { imgs = new ArrayList<>(); for (int i=0;i<data.size();i++){ ImageView imageView = new ImageView(MainActivity.this); if (i==0){ imageView.setImageResource(R.drawable.sha1); }else{ imageView.setImageResource(R.drawable.sha2); } imgs.add(imageView); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT); params.setMargins(5,0,5,0); lin.addView(imageView,params); }}private String getstring(InputStream inputStream, String charset) { try { InputStreamReader inputStreamReader = new InputStreamReader(inputStream,charset); BufferedReader br = new BufferedReader(inputStreamReader); String s = null; StringBuilder builder = new StringBuilder(); while((s=br.readLine())!=null){ builder.append(s); } return builder.toString(); } catch (Exception e) { e.printStackTrace(); } return null;}2.适配器
public class Myadapter extends PagerAdapter { Context tcx; List<Bean.ResultBean.DataBean> data; Handler handler; public Myadapter(Context tcx, List<Bean.ResultBean.DataBean> data,Handler handler) { this.tcx = tcx; this.data = data; this.handler=handler; } @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(tcx); imageView.setScaleType(ImageView.ScaleType.FIT_XY); ImageLoader.getInstance().displayImage(data.get(position%data.size()).getThumbnail_pic_s(),imageView,ImageloaderUtils.getoption()); imageView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { int action = event.getAction(); switch (action){ case MotionEvent.ACTION_DOWN: handler.removeCallbacksAndMessages(null); break; case MotionEvent.ACTION_MOVE: handler.removeCallbacksAndMessages(null); break; case MotionEvent.ACTION_CANCEL: handler.removeCallbacksAndMessages(null); break; case MotionEvent.ACTION_UP: handler.sendEmptyMessageDelayed(0,3000); break; } return true; } }); container.addView(imageView); return imageView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); }}
阅读全文
0 0
- viewpager无限轮播
- 无限轮播加点
- Viewpager无限轮播
- 无限轮播
- 图片无限轮播
- 无限轮播
- Viewpager无限轮播
- ViewPager无限轮播
- 无限轮播
- 无限轮播
- 无限轮播
- 无限轮播
- ViewPager无限轮播
- 无限轮播
- ViewPager无限轮播
- 无限轮播
- 无限轮播
- 无限轮播
- 【makefile】一起写makefile(五)--变量的使用
- 第二周
- MainActivity
- ReactNative基础(一)编写一个登录页面
- okhttpclient登录
- 无限轮播
- [Day Zero]
- MyAdapter
- 从分布式到微服务,深挖Service Mesh
- MyApplication
- angularJS如何定义一个随机数
- 模拟淘宝库存的增加删除
- beeline 命令行客户端连接hive
- 阿里巴巴Java开发规约-插件使用[Idea和Eclipse]