自动轮播activity
来源:互联网 发布:php架构师书籍 编辑:程序博客网 时间:2024/05/18 21:46
//首先handle
Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { if (msg.what==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) { //打印以下数据看看是否获取到 Log.i("----",s);if (s != null){ Gson gson = new Gson();DataDataBean dataDataBean = gson.fromJson(s, DataDataBean.class);List<DataDataBean.DataBean> list = dataDataBean.getData();//给viewPager设置适配器 MyAdapter myAdapter = new MyAdapter(MainActivity.this, list,handler);//设置适配器 viewPager.setAdapter(myAdapter);//3.根据集合的长度动态添加小圆点...linearLayout initDoc(list);//2.手动的可以无限滑动 viewPager.setCurrentItem(list.size()*100000);//设置当前展示中间某个足够大的位置handler.sendEmptyMessageDelayed(0,2000);//发送一个延时的空消息//viewPage设置监听事件 viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}/** * 当选中某个页面的时候,把当前的小圆点背景变成绿色 * @param position */ @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.shape_01); }else { images.get(i).setImageResource(R.drawable.shape_02); }}}@Override public void onPageScrollStateChanged(int state) {} }); }} };asyncTask.execute();}//-************************************************************动态添加小点* 动态添加小圆点 * @param list */ private void initDoc(List<DataDataBean.DataBean> list) { //1.需要一个集合记录一下小圆点的imageView控件 images = new ArrayList<ImageView>(); //2...linearLayout上面的视图清空一下再去添加 linearLayout.removeAllViews();for (int i=0;i<list.size();i++){ ImageView imageView = new ImageView(MainActivity.this);if (i==0){ imageView.setImageResource(R.drawable.shape_01); }else { imageView.setImageResource(R.drawable.shape_02); }//添加到集合去 images.add(imageView); //添加到线性布局上//这是布局参数,,刚开始小圆点之间没有距离,所以使用java代码指定宽度高度,并且指定小圆点之间的距离 LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);params.setMargins(5,0,5,0);linearLayout.addView(imageView,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; }
阅读全文
0 0
- 自动轮播activity
- 自动轮播图
- 自动轮播
- 自动轮播条
- 自动轮播
- ViewPager自动轮播
- 自动轮播
- 自动轮播
- viewpage自动轮播
- ViewPager自动轮播
- 自动轮播
- Banner自动轮播
- viewpager自动轮播
- 图片自动轮播
- 自动轮播+RadioGroup
- 图片自动轮播
- 自动轮播
- 12自动轮播
- 字符串旋转
- 二分查找算法(左闭右开区间)
- python--leetcode693. Binary Number with Alternating Bits
- 全选,全不选,反选 案例
- [codevs1088]神经网络
- 自动轮播activity
- 串口通信帧的同步方法(识别一帧数据的起始结束)
- B/S与C/S究竟是何物
- 百度地图二次开发
- 城市天气和现在时间
- MySQL命令行中文编码完美解决方案
- POJ-2524 Ubiquitous Religions【并查集】
- git 分之管理---创建与合并分支
- 服务计算——配置go语言环境