banner实现无限轮播

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();
            }
        }

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值