LoopView 是一个强大的轮转大图控件,并且提供了许多配置方法来达到您的显示效果和需求。

github地址:

 

https://github.com/wanghao200906/Android-LoopView

 

效果:

Android LoopView 是一个强大的轮转大图控件_JAVA
Android LoopView 是一个强大的轮转大图控件_JAVA_02

在项目中使用 LoopView

如果您的项目使用 Gradle 构建, 只需要在您的build.gradle文件添加下面一行到 dependencies:

    compile 'com.kevin:loopview:1.0.4'

简单使用

在layout.xml 中配置LoopView

在Layout文件添加<com.kevin.loopview.AdLoopView

<com.kevin.loopview.AdLoopView
    android:id="@+id/main_act_adloopview"
    android:layout_width="match_parent"
    android:layout_height="192dp">
</com.kevin.loopview.AdLoopView>

在代码中配置

AdLoopView mLoopView = (AdLoopView) this.findViewById(R.id.main_act_adloopview);
String json = LocalFileUtils.getStringFormAsset(this, "loopview_date.json");
// 使用 JsonTool 封装 JSON 数据到实体对象
LoopData loopData = JsonTool.toBean(json, LoopData.class);
// 通过对象的方式设置数据
mLoopView.refreshData(loopData);
// 开始轮转
mLoopView.startAutoLoop();

// 设置点击监听
mLoopView.setOnClickListener(new BaseLoopAdapter.OnItemClickListener() {
        @Override
        public void onItemClick(PagerAdapter parent, View view, 
            int position, int realPosition) {
            // 获取数据
            LoopData loopData = mLoopView.getLoopData();
            String url = loopData.items.get(position).link;

            // 通过系统浏览器打开跳转链接
            Intent intent = new Intent();
            intent.setData(Uri.parse(url));
            intent.setAction(Intent.ACTION_VIEW);
            startActivity(intent);
        }
    });

更多配置

XML 配置

在XML中使用AdLoopView,可以有如下配置:

<com.kevin.loopview.AdLoopView
    android:id="@+id/adloop_act_adloopview"
    android:layout_width="match_parent"
    android:layout_height="192dp"
    kevin:loop_interval="5000"
    kevin:loop_dotMargin="5dp"
    kevin:loop_autoLoop="[true|false]"
    kevin:loop_dotSelector="@drawable/ad_dots_selector"
    kevin:loop_layoutId="@layout/ad_loopview_layout">
</com.kevin.loopview.AdLoopView>

在代码中配置

// 设置ViewPager页面切换时间
mLoopView.setScrollDuration(1000);
// 设置轮转时间间隔
mLoopView.setInterval(3000);
// 以集合的方式初始化数据
mLoopView.setLoopViewPager(List<Map<String, String>> data);
// 以JSON的方式初始化数据
mLoopView.setLoopViewPager(String jsonData);
// 以数据实体的方式初始化数据
mLoopView.setLoopViewPager(LoopData rotateData);
// 以集合的方式刷新数据
mLoopView.refreshData(final List<Map<String, String>> data);
// 以数据实体的方式刷新数据
mLoopView.refreshData(LoopData loopData);
// 以JSON的方式刷新数据
mLoopView.refreshData(String jsonData);
// 获取配置的轮转大图数据
mLoopView.getLoopData();
// 开始自动轮转
mLoopView.startAutoLoop();
// 在指定时间延迟后自动轮转
mLoopView.startAutoLoop(long delayTimeInMills);
// 停止自动轮转
mLoopView.stopAutoLoop();
// 设置自定义布局
mLoopView.setLoopLayout(int layoutResId);

本demo来源github,版权归原作者所有!

https://mp.weixin.qq.com/s/5Kx3pnbSyXps1e7jSzEt1Q