示例图:
在build.gradle中添加依赖
compile 'com.youth.banner:banner:1.4.9'
compile 'com.github.bumptech.glide:glide:3.7.0'
在项目清单中添加权限
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>在布局文件中添加Banner
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.bawei.com.myapplication.MainActivity"> <com.youth.banner.Banner android:id="@+id/ban" android:layout_width="match_parent" android:layout_height="200dp"></com.youth.banner.Banner> </RelativeLayout>MainActivity.java
package com.bawei.com.myapplication; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import com.youth.banner.Banner; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private List<String> list = new ArrayList<String>(); private Banner ban; String path = "http://120.27.23.105/ad/getAd"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ban = (Banner) findViewById(R.id.ban); MyTask myTask = new MyTask(path,ban); myTask.execute(); } }MyTask.java
package com.bawei.com.myapplication; import android.os.AsyncTask; import com.google.gson.Gson; import com.youth.banner.Banner; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.List; /** * Created by Wangrx on 2017/11/3. */ public class MyTask extends AsyncTask<String,Integer,String>{ private String path; private Banner ban; public MyTask(String path, Banner ban) { this.path = path; this.ban = ban; } @Override protected String doInBackground(String... strings) { 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 s = setToString(inputStream, "utf-8"); return s; } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); JsonRootBean bean = gson.fromJson(s, JsonRootBean.class); List<Data> data = bean.getData(); ArrayList<String> list = new ArrayList<>(); for (Data array:data) { list.add(array.getIcon()); } ban.setImageLoader(new ImgApp());//引用ImgApp,加载里面的东西 ban.setImages(list); ban.isAutoPlay(true); ban.setDelayTime(2000); ban.start(); } public String setToString(InputStream inputStream, String charset){ InputStreamReader inputStreamReader = null; try { inputStreamReader = new InputStreamReader(inputStream,charset); BufferedReader reader = new BufferedReader(inputStreamReader); String s; StringBuilder builder = new StringBuilder(); while ((s=reader.readLine())!=null){ builder.append(s); } reader.close(); return builder.toString(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } }ImgApp.java
package com.bawei.com.myapplication; import android.content.Context; import android.widget.ImageView; import com.bumptech.glide.Glide; import com.youth.banner.loader.ImageLoader; /** * Created by Wangrx on 2017/11/3. */ public class ImgApp extends ImageLoader { @Override public void displayImage(Context context, Object path, ImageView imageView) { Glide.with(context).load(path).into(imageView); } }