记得在 Gradle 文件中 添加依赖
compile 'com.youth.banner:banner:1.4.9'
compile 'com.google.code.gson:gson:2.2.4' //gson 的jra 包 compile files('libs/universal-image-loader-1.9.3.jar') //ImagerLoader 的依赖
还有就是权限了 各种权限 在这里就不一一说了。。。
首先是 XML 文件
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.bawei.bannerdemo.MainActivity"> <com.youth.banner.Banner android:layout_width="match_parent" android:layout_height="150dp" android:id="@+id/bnn"></com.youth.banner.Banner> </RelativeLayout>
Activity 代码
package com.bawei.bannerdemo; import android.os.AsyncTask; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import com.google.gson.Gson; import com.youth.banner.Banner; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private Banner bnn; List<String> imglist; String jsonurl="http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page=1"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { bnn = (Banner) findViewById(R.id.bnn); new AsyncTask<String, Integer, String>() { @Override protected String doInBackground(String... strings) { String getjsonstr = new Utlis().getjsonstr(jsonurl); return getjsonstr; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); List<User.DataBean> list = new Gson().fromJson(s, User.class).getData(); imglist=new ArrayList<String>(); for (int i=0;i<list.size();i++){ imglist.add(list.get(i).getImg()); } bnn.setDelayTime(1000); bnn.setImageLoader(new getimg()); bnn.setImages(imglist); bnn.start(); } }.execute(); // bnn.setDelayTime(100) } }
Utlis 类 封装了 网络请求的工具类
package com.bawei.bannerdemo;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
/**
* Created by on 2017/12/15.
*/
public class Utlis {
public String getjsonstr(String name){
String jsonstr="";
try {
URL url=new URL(name);
HttpURLConnection conn= (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5000);
conn.setReadTimeout(5000);
int code = conn.getResponseCode();
if(code==200){
InputStream is = conn.getInputStream();
byte arr[]=new byte[1024];
int len=0;
while((len=is.read(arr))!=-1){
String s = new String(arr, 0, len);
jsonstr+=s;
}
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return jsonstr;
}
}