1. oncreate中
getDataFromNet();
2.
private Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.arg1==0){ vp.setCurrentItem(vp.getCurrentItem()+1); } handler.sendEmptyMessageDelayed(0,2000); } };
private void getDataFromNet() { AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() { @Override protected String doInBackground(Void... voids) { String path = "http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=5&page=1"; 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 = streamToString(inputStream, "utf-8"); return json; } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { if (s != null) { Gson gson = new Gson(); DataDataBean dataDataBean = gson.fromJson(s, DataDataBean.class); final List<DataDataBean.DataBean> data = dataDataBean.getData(); vp.setAdapter(new PagerAdapter() { @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } @Override public Object instantiateItem(ViewGroup container, int position) { ImageView image = new ImageView(MainActivity.this); //设置图片平铺 image.setScaleType(ImageView.ScaleType.FIT_XY); ImageLoader.getInstance().displayImage(data.get(position % data.size()).getImg(), image, ImageLoaderUtil.getDefaultOption()); container.addView(image); return image; } @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } }); handler.sendEmptyMessageDelayed(0,2000); vp.setCurrentItem(data.size() / 2); 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<images.size();i++) { if (i == position%images.size()) { images.get(i).setImageResource(R.drawable.shape1); } else { images.get(i).setImageResource(R.drawable.shape); } } } @Override public void onPageScrollStateChanged(int state) { } }); //动态添加小圆点 addpoint(data.size()); } } }; asyncTask.execute(); }3.//手动添加小圆点
public void addpoint(int length) { lin.removeAllViews(); for (int i=0;i<length;i++) { ImageView image = new ImageView(this); if (i==0){ image.setImageResource(R.drawable.shape); }else{ image.setImageResource(R.drawable.shape1); } //添加到集合 images.add(image); //设置原点边距 LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT); params.setMargins(5,0,5,0); lin.addView(image,params); } } private String streamToString(InputStream inputStream, String charset) { try { InputStreamReader inputStreamReader = new InputStreamReader(inputStream, charset); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String s = null; StringBuilder builder = new StringBuilder(); while ((s = bufferedReader.readLine()) != null) { builder.append(s); } bufferedReader.close(); return builder.toString(); } catch (Exception e) { e.printStackTrace(); } return null; }4.shape布局
<corners android:radius="50dp"></corners> <solid android:color="#f00"></solid> <size android:height="10dp" android:width="10dp"></size><corners android:radius="50dp"></corners> <solid android:color="#f00"></solid> <size android:height="10dp" android:width="10dp"></size>5.handler6.适配器中private Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.arg1==0){ vp.setCurrentItem(vp.getCurrentItem()+1); } handler.sendEmptyMessageDelayed(0,2000); } };
public Myadp(Handler handler, Context context, List<DataDataBean.DataBean> data) { this.data = data; this.context=context; this.handler=handler; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } @Override public Object instantiateItem(ViewGroup container, int position) { ImageView imageView=new ImageView(context); ImageLoader.getInstance().displayImage(data.get(position%data.size()).getImg(),imageView,Imageloperutil.show()); container.addView(imageView);
//图片的触摸监听事件 imageView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motionEvent) { switch (motionEvent.getAction()){ //移开 case MotionEvent.ACTION_MOVE: handler.removeCallbacksAndMessages(null); break; case MotionEvent.ACTION_CANCEL: handler.sendEmptyMessageDelayed(1,2000); break; case MotionEvent.ACTION_UP: handler.sendEmptyMessageDelayed(1,2000); break; case MotionEvent.ACTION_DOWN: handler.removeCallbacksAndMessages(null); break; } return true; } }); return imageView; } @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object object) { return view==object; }