无限轮播
来源:互联网 发布:流体计算软件 编辑:程序博客网 时间:2024/06/03 21:03
private ViewPager vp;private LinearLayout ll;private GridView gv;List<DataBean> datalist=new ArrayList<>();List<ImageView> dotlist=new ArrayList<>();//创建HandlerHandler 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; } }};@Overrideprotected 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串,发送hanlderpublic 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();}//解析jsonprivate 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);}
阅读全文
1 0
- viewpager无限轮播
- 无限轮播加点
- Viewpager无限轮播
- 无限轮播
- 图片无限轮播
- 无限轮播
- Viewpager无限轮播
- ViewPager无限轮播
- 无限轮播
- 无限轮播
- 无限轮播
- 无限轮播
- ViewPager无限轮播
- 无限轮播
- ViewPager无限轮播
- 无限轮播
- 无限轮播
- 无限轮播
- 频道管理的实际应用
- java复习
- 关键接口性能测试报告
- Vernam密码及Weak Key
- ImageLoader
- 无限轮播
- Django 对比get和filter区别
- 【node】nodejs环境下多个函数异步回调统一异步回调执行结果写法
- Java数据类型
- 命名不规范造成的el表达式取不到值
- ViewpageAndXlistView
- 今日头条栏
- JVM内存区域
- angularJS