1:依赖包
compile ‘com.youth.banner:banner:1.1.5’ //指定版本
compile ‘com.youth.banner:banner:+’ //最新版本
2:常量
方法名 描述
Banner.NOT_INDICATOR 不显示指示器和标题
Banner.CIRCLE_INDICATOR 显示圆形指示器
Banner.NUM_INDICATOR 显示数字指示器
Banner.NUM_INDICATOR_TITLE 显示数字指示器和标题
Banner.CIRCLE_INDICATOR_TITLE 显示圆形指示器和标题
Banner.LEFT 指示器居左
Banner.CENTER 指示器居中
Banner.RIGHT 指示器居右
3:方法
方法名 描述
setBannerStyle 设置轮播样式(默认为Banner.NOT_INDICATOR)
isAutoPlay(boolean isAutoPlay) 设置是否自动轮播(默认自动)
setBannerTitle(String[] titles) 设置轮播要显示的标题和图片对应(如果不传默认不显示标题)
setDelayTime(int time) 设置轮播图片间隔时间(默认为2000)
setImages(Object[]/List
public class MainActivity extends AppCompatActivity {
private Banner banner;
String[] titles=new String[]{"哈哈哈哈","嘿嘿"};
String[] images= new String[] {"http://pic.962.net/up/2017-1/2017011716214783899.jpg","https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=2450342075,81663610&fm=26&gp=0.jpg"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
banner= (Banner) findViewById(R.id.banner);
//是否自动轮播
banner.isAutoPlay(true);
//设置标题
banner.setBannerTitle(titles);
//设置轮播时间
banner.setDelayTime(1000);
//设置
banner.setIndicatorGravity(Banner.LEFT);
banner.setImages(images);
}
}
(3):图片路径为网络请求的数据
public class MainActivity extends AppCompatActivity {
private String path2="http://shouyoutoutiao.app.17wanba.com/toutiao/get_list";
private Banner banner;
private ArrayList<String> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//实例异步事务
mytask mytask = new mytask();
mytask.execute(path2);
}
//Asynctask异步请求网络数据
class mytask extends AsyncTask<String,Integer,String> {
//用于耗时操作
@Override
protected String doInBackground(String... params) {
String path = params[0];
try {
//将路径包装成网络路径
URL url = new URL(path);
HttpURLConnection con= (HttpURLConnection) url.openConnection();
//设置请求超时
con.setConnectTimeout(2000);
//设置请求方式
con.setRequestMethod("GET");
//判断请求码
if(con.getResponseCode()==200){
//url数据的获取
InputStream inputStream = con.getInputStream();
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] bytes = new byte[1024];
int length=0;
while((length=inputStream.read(bytes))!=-1){
bos.write(bytes,0,length);
}
inputStream.close();
bos.close();
return bos.toString();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
//返回json,更改ur
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
try {
list=new ArrayList<>();
//解析返回的字符串
JSONObject job = new JSONObject(s);
JSONArray data_array = job.getJSONArray("data");
for (int i=0;i<data_array.length();i++){
JSONObject job2 = data_array.getJSONObject(i);
//得到title
String title = job2.getString("title");
JSONArray img_array = job2.getJSONArray("img");
for (int j=0;j<img_array.length();j++){
JSONObject job3 = img_array.getJSONObject(j);
String img_url = job3.getString("url");
list.add(img_url);
}
}
banner= (Banner) findViewById(R.id.banner);
//设置默认的样式
banner.setBannerStyle(Banner.CENTER);
//设置轮播的秒数
banner.setDelayTime(1000);
//设置是否自动轮播
banner.isAutoPlay(true);
//设置轮播
banner.setImages(list);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
}