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); } } }
网络获取图片实现无限轮播图
最新推荐文章于 2019-01-16 11:46:35 发布