VerticalBannerView的简单实现 很好用

来源:互联网 发布:外贸海关数据有用吗 编辑:程序博客网 时间:2024/05/16 12:36

话不多少先来看图,直截了当

art.gif

现在想很多 京东淘宝的首页都有这样的效果

首先要在整个项目的build.gradle中添加依赖

allprojects {    repositories {        maven {            url "https://jitpack.io"        }        ......    }}
然后在module的build.gradle中添加

compile 'com.github.Rowandjj:VerticalBannerView:1.0'
之后就可以使用了

VerticalBannerView的使用方法和listview差不太多首先需要一个Bean类

在这里随便写一个

public class Model {    String title;    String url;    public Model(String title, String url) {        this.title = title;        this.url = url;    }}
这里写了两个属性一个是给用户看的标题一个可以是用户点击时候跳转的网址或者是别的

然后需要一个适配器

class SampleAdapter extends BaseBannerAdapter<Model>{    public SampleAdapter(List<Model> datas) {        super(datas);    }    @Override    public View getView(VerticalBannerView verticalBannerView) {        return LayoutInflater.from(MainActivity.this).inflate(R.layout.item,null);    }    @Override    public void setItem(View view, final Model model) {        //给控件赋值        TextView title=view.findViewById(R.id.title);        ImageView img=view.findViewById(R.id.img);        title.setText(model.title);        title.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Toast.makeText(MainActivity.this,model.title,Toast.LENGTH_SHORT).show();            }        });    }}

大家看到了这里的适配器需要一个泛型这个泛型就是我们写好的bean类

这个也是需要一个子布局来实现内部效果的 大家可以根据自己随便定义

然后需要一个集合来存放数据实例化一个list集合泛型的刚才写好的bean类

在布局中增加view的声明

 <com.taobao.library.VerticalBannerView            android:id="@+id/banner_01"            android:layout_width="match_parent"            android:layout_height="40dp"            app:animDuration="900" ---->动画间隔900ms            app:gap="2000"/> ----->切换时长2000ms

然后实例化控件进行绑定

最后别忘了绑定数据之后还需要.start启动

之后还可以 调用.setData来更新数据 这里只需要重写一个list集合传进去


最后附上GitHub