Banner 的基本使用

在APP中,经常会在一些页面看到可以无限循环滑的Banner位置,可惜苦逼于android原生的控件中并没有提供这样的View,那我们只能另辟蹊径,自己造轮子。其实,这样的自定义控件各路大神都有各种实现方式,还有支持各种炫酷的UI效果以及动画效果。这里总结一下各种实现方案

依赖:
implementation 'com.youth.banner:banner:1.4.10'
布局:


    
    


之后就是实现的代码由于我用的是网络解析我会标注的:
public class MainActivity extends AppCompatActivity {
    //找控件我用的是黄油刀
    @BindView(R.id.main_banner)
    Banner mainBanner;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        initView();
    }

    private void initView() {
        initBan();
    }

    private void initBan() {
        //Retrofit网络解析,FoodServer为解析接口,FoodServer.BannerUrl为解析的地址
        Retrofit retrofit = new Retrofit.Builder()
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .addConverterFactory(GsonConverterFactory.create())
                .baseUrl(FoodServer.BannerUrl)
                .build();
        FoodServer myServer = retrofit.create(FoodServer.class);
        Observable data = myServer.getData();
        data.subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer() {
                    @Override
                    public void onSubscribe(Disposable d) {

                    }

                    @Override
                    public void onNext(BannerBean bannerBean) {
                    //接口里找到你所用的集合
                    //去添加你的适配器
                    //之后田间到你的Banner里,start开启。 
                        List data1 = bannerBean.getData();
                        mBan.setImageLoader(new BannerAdapter());
                        mBan.setImages(data1);
                        mBan.start();
                    }

                    @Override
                    public void onError(Throwable e) {
                  //报错有所吐司
                        Log.e("=======", "onError: " + e.getMessage());
                    }

                    @Override
                    public void onComplete() {

                    }
                });
    }
}

这只是直接设置的Banner一般来用的是结合RecyclerView一类的控件使用Banner有很多中用法 这只是其中一种 在此我就不多说了 。

如果觉得我的文章对你有帮助,请随意赞赏。您的支持将鼓励我继续创作!

你可能感兴趣的:(Banner 的基本使用)