网络获取图片实现无限轮播图
来源:互联网 发布:arm linux gcc 3.4.1 编辑:程序博客网 时间:2024/06/05 00:18
import android.os.AsyncTask;import android.os.Handler;import android.os.Message;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.ViewParent;import android.widget.ImageView;import android.widget.LinearLayout;import com.google.gson.Gson;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.net.URLConnection;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity { private ViewParent viewParent; private ViewPager viewPager; private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { if (msg.what == 0){ int currentItem = viewPager.getCurrentItem(); viewPager.setCurrentItem(currentItem+1); handler.sendEmptyMessageDelayed(0,2000); } } }; private LinearLayout linearLayout; private List<ImageView> images; private List<Bean.NewslistBean> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewPager = (ViewPager) findViewById(R.id.view_pager); linearLayout = (LinearLayout) findViewById(R.id.linear_layout); toYiBu(); } private void toYiBu() { AsyncTask<Void, Void, String> asyncTask = new AsyncTask<Void, Void, String>() { @Override protected String doInBackground(Void... voids) { try { URL url = new URL("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=6&page=1"); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setConnectTimeout(5000); urlConnection.setReadTimeout(5000); int responseCode = urlConnection.getResponseCode(); if (responseCode==200){ InputStream inputStream = urlConnection.getInputStream(); String json = ZhuanHuan(inputStream); return json; } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String json) { super.onPostExecute(json); Gson gson = new Gson(); Bean bean = gson.fromJson(json, Bean.class); list = bean.getNewslist(); //初始化小圆点 initDoc(); //设置适配器 ImagePager imagePager = new ImagePager(MainActivity.this, list,handler); // viewPager.setAdapter(imagePager); PagerListerne(); //发送延时消息 handler.sendEmptyMessageDelayed(0,2000); } }; asyncTask.execute(); } private void PagerListerne() { //设置ViewPager初始展示的位置 viewPager.setCurrentItem(list.size()*10000); viewPager.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.doc_select); }else { images.get(i).setImageResource(R.drawable.doc_select_no); } } } @Override public void onPageScrollStateChanged(int state) { } }); } private String ZhuanHuan(InputStream inputStream) { InputStreamReader inputStreamReader = new InputStreamReader(inputStream); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); StringBuilder builder = new StringBuilder(); String string = null; try { while ((string=bufferedReader.readLine())!=null){ builder.append(string); } return builder.toString(); } catch (Exception e) { e.printStackTrace(); } return null; } private void initDoc() { //首先需要一个集合记录这些小圆点的图片,,,,当页面切换的时候,可以从集合中取出imageView进行显示图片的设置 images = new ArrayList<>(); linearLayout.removeAllViews();//清空/移除所有的view for (int i = 0;i<list.size();i++){ ImageView imageView = new ImageView(MainActivity.this); if (i==0){//显示第一页,,,红的 imageView.setImageResource(R.drawable.doc_select); }else {//绿的 imageView.setImageResource(R.drawable.doc_select_no); } //添加到集合 images.add(imageView); //加入到线性布局中显示 LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT); params.setMargins(5,0,5,0); linearLayout.addView(imageView,params); } }}
阅读全文
0 0
- 网络获取图片实现无限轮播图
- Android ViewPager从网络获取图片实现无限轮播
- 网络获取图片viewpager无限轮播
- Viewpager获取网络图片进行自动无限轮播
- 网络获取图片无限轮播加小圆点联动
- 无限轮播加小圆点(从网络获取图片)
- 解析接口中的json串网络图片数据,实现效果为无限轮播图+小圆点
- ViewPager网络加载图片并无限轮播实现
- 获取网络图片实现网络轮播
- 搜索网络影视图片数据,展示为无限轮播图+ImageLoader
- android 简单实现获取网络图片
- android获取网络图片简单实现
- banner实现流+网络获取图片设置
- viewpager无限轮播(从网络上获取图片小圆点)
- 网络无限轮播图
- Glide+Banner网络请求加载图片实现无限自动轮播+小圆点
- Android使用自定义控件实现加载网络图片无限轮播
- ViewPager网络加载图片+无限轮播
- 《Kotlin 程序设计》第七章 Kotlin 编译过程分析
- 《Kotlin 程序设计》第八章 Kotlin 集成Spring Boot开发
- json转化字符串出错时,判断是否严谨
- 《Kotlin 程序设计》第九章 Kotlin与Java混合调用
- spoj 8222 Substrings 可重复的一个串出现了多少次
- 网络获取图片实现无限轮播图
- 《Kotlin 程序设计》第十章 Kotlin Native介绍
- 《Kotlin 程序设计》第十一章 Kotlin实现DSL
- python 初学扩展随机数
- 《Kotlin 程序设计》第十三章 使用Kotlin开发JavaScript代码
- python—matplotlib数据可视化实例注解系列-----设置标注字体样式(matplotlib颜色库)
- 《Kotlin 程序设计》第十二章 Kotlin的多线程:协程(Coroutines)
- 《Kotlin 程序设计》第十四章 使用Kotlin开发Android程序
- Spring Boot 实现json和jsonp格式数据接口