private ViewPager vp; private LinearLayout ll; private GridView gv; List<DataBean> datalist=new ArrayList<>(); List<ImageView> dotlist=new ArrayList<>(); //创建Handler Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { switch(msg.what){ case 0: String json = (String) msg.obj; parseData(json); break; case 1: int currentItem = vp.getCurrentItem(); currentItem++; vp.setCurrentItem(currentItem); sendMessge(); break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化控件 initView(); //线程获取json串 getjson(); gv.setAdapter(new Base()); } //初始化控件的方法 private void initView() { //获取事件源 vp = (ViewPager) findViewById(R.id.vp); ll = (LinearLayout) findViewById(R.id.ll); gv = (GridView) findViewById(R.id.gv); } //线程获取json串,发送hanlder public void getjson() { new Thread(){ @Override public void run() { String json = new NewConnectionUrl().getJson("http://v3.wufazhuce.com:8000/api" + "/reading/index/?version=3.5.0&platform=android"); Message m = new Message(); m.what=0; m.obj=json; handler.sendMessage(m); } }.start(); } //解析json private void parseData(String json) { Gson gson = new Gson(); JsonBean jsonBean = gson.fromJson(json, JsonBean.class); List<JsonBean.DataBean.EssayBean> essay = jsonBean.getData().getEssay(); for (JsonBean.DataBean.EssayBean w: essay) { List<JsonBean.DataBean.EssayBean.AuthorBean> author = w.getAuthor(); for (JsonBean.DataBean.EssayBean.AuthorBean r: author) { String web_url = r.getWeb_url(); String desc = r.getDesc(); DataBean dataBean = new DataBean(desc, web_url); datalist.add(dataBean); // } } //设置适配器 VpAdapter vpAdapter = new VpAdapter(); vp.setAdapter(vpAdapter); //设置小点 initdot(); // vp.setCurrentItem(1000000); // sendMessge(); //vp监听 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 <dotlist.size() ; i++) { if(i==position%dotlist.size()){ dotlist.get(i).setImageResource(R.drawable.choose); }else{ dotlist.get(i).setImageResource(R.drawable.notchoose); } } } @Override public void onPageScrollStateChanged(int state) { } }); } //设置小点 private void initdot() { if(dotlist!=null){ dotlist.clear(); } for (int i = 0; i <datalist.size() ; i++) { ImageView imageView = new ImageView(MainActivity.this); //imageView.setScaleType(ImageView.ScaleType.FIT_XY); if(i==0){ imageView.setImageResource(R.drawable.choose); }else{ imageView.setImageResource(R.drawable.notchoose); } LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(20, 20); layoutParams.setMargins(20,0,20,0); ll.addView(imageView,layoutParams); dotlist.add(imageView); //Log.e("Tag-----------------","设置小点设置小点设置小点设置小点设置小点设置小点设置小点设置小点"); } } //vp.适配器 class VpAdapter 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 iv = new ImageView(MainActivity.this); //对图片进行缩放 iv.setScaleType(ImageView.ScaleType.FIT_XY); DisplayImageOptions options = new DisplayImageOptions.Builder() .showImageOnLoading(R.mipmap.ic_launcher) // 设置图片下载期间显示的图片 .showImageForEmptyUri(R.mipmap.ic_launcher) // 设置图片Uri为空或是错误的时候显示的图片 .showImageOnFail(R.mipmap.ic_launcher) // 设置图片加载或解码过程中发生错误显示的图片 .build(); Log.e("xxx", "instantiateItem: "+datalist.get(position%datalist.size()).getWeb_url()); ImageLoader.getInstance().displayImage(datalist.get(position%datalist.size()).getWeb_url(),iv,options); container.addView(iv); return iv; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } } //延迟发送 private void sendMessge() { handler.sendEmptyMessageDelayed(1,2000); }
无限轮播
最新推荐文章于 2021-06-18 17:15:59 发布