package com.example.jinengwu; import android.graphics.Bitmap; import android.os.AsyncTask; import android.os.Handler; import android.os.Message; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import com.google.gson.Gson; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.assist.ImageScaleType; import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer; import java.io.BufferedReader; 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 List<String> picUrls; private ViewPager viewpager; private DisplayImageOptions options; private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); int currentItem = viewpager.getCurrentItem(); currentItem++; viewpager.setCurrentItem(currentItem); handler.sendEmptyMessageDelayed(0,1000); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewpager = findViewById(R.id.view_pager); //使用内存缓存 //使用磁盘缓存 //设置正在下载的图片 //url为空或请求的资源不存在时 //下载失败时显示的图片 //设置图片色彩模式 1px=2字节 //设置图片的缩放模式 //设置圆角 30代表半径 自定义 options = new DisplayImageOptions.Builder() .cacheInMemory(true)//使用内存缓存 .cacheOnDisk(true)//使用磁盘缓存 .showImageOnLoading(R.mipmap.ic_launcher)//设置正在下载的图片 .showImageForEmptyUri(R.mipmap.ic_launcher)//url为空或请求的资源不存在时 .showImageOnFail(R.mipmap.ic_launcher)//下载失败时显示的图片 .bitmapConfig(Bitmap.Config.RGB_565)//设置图片色彩模式 1px=2字节 .imageScaleType(ImageScaleType.EXACTLY)//设置图片的缩放模式 .displayer(new RoundedBitmapDisplayer(100))//设置圆角 30代表半径 自定义 .build(); Retion(); } private void Retion() { MyTask myTask = new MyTask(); myTask.execute("https://www.zhaoapi.cn/ad/getAd"); } class MyTask extends AsyncTask<String,Void,String>{ @Override protected String doInBackground(String... strings) { try { URL url = new URL(strings[0]); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setConnectTimeout(5000); urlConnection.setReadTimeout(5000); urlConnection.setRequestMethod("GET"); int responseCode = urlConnection.getResponseCode(); if(responseCode==200){ InputStream inputStream = urlConnection.getInputStream(); return Stringto.stringto(inputStream); } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); if(s!=null){ Gson gson= new Gson(); Bean bean = gson.fromJson(s, Bean.class); List<Bean.DataBean> list = bean.getData(); picUrls = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { //循环图片 String icon = list.get(i).getIcon(); picUrls.add(icon); } //璁剧疆閫傞厤鍣? viewpager.setAdapter(new MyAdapter()); viewpager.setCurrentItem(5*10); handler.sendEmptyMessageDelayed(0,1000); } } } //适配器 class MyAdapter 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 imageView=new ImageView(MainActivity.this); String s = picUrls.get(position%picUrls.size()); ImageLoader.getInstance().displayImage(s,imageView,options); container.addView(imageView); return imageView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } } }
获取网络图片 Gson解析viewpager
最新推荐文章于 2018-05-12 14:25:03 发布