Android 开源组件 ----- Android LoopView无限自动轮转控件

2015-12-28 15:26 by 杰瑞教育, 32 阅读, 0 评论, 收藏, 编辑

一、组件介绍

  App产品中信息列表头部都会有自动轮转的广告图片,使用ViewPager可以实现但编码比较麻烦,我们可以采用使用LoopView开源控件来完成, LoopView是一个强大的轮转大图控件,并且提供了许多配置方法足以满足你的应用需求

二、环境配置

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

  compile 'com.kevin:loopview:1.0.4'

三、如何使用

1、在layout.xml 中配置LoopView

  在Layout文件添加<com.kevin.loopview.AdLoopView>代码如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:kevin="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<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"
kevin:loop_dotSelector="@drawable/ad_dots_selector"
kevin:loop_layout="@layout/ad_loopview_layout">
</com.kevin.loopview.AdLoopView> </RelativeLayout>

2、在Activity添加代码:

public class AdLoopActivity extends Activity
implements BaseLoopAdapter.OnItemClickListener{
AdLoopView mLoopView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_adloopview);
initViews();
initEvents();
}
private void initViews() {
mLoopView = (AdLoopView)
this.findViewById(R.id.adloop_act_adloopview);
initRotateView();
} /**
* 初始化LoopView
*/
private void initRotateView() {
// 设置自定义布局
// mLoopView.setLoopLayout(R.layout.ad_loopview_layout);
// 设置数据
String json = LocalFileUtils.getStringFormAsset(this,
"loopview_date.json");
LoopData loopData = JsonTool.toBean(json, LoopData.class);
if(null != loopData) {
mLoopView.refreshData(loopData);
}
// 设置页面切换过度事件
mLoopView.setScrollDuration(2000);
// 设置页面切换时间间隔
mLoopView.setInterval(3000); } /**
* 初始化事件
*/
private void initEvents() {
mLoopView.setOnClickListener(this);
}
@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);
} @Override
protected void onDestroy() {
super.onDestroy();
}
}

3、所涉及LocalFileUtils的主要方法

public class LocalFileUtils {

    /**
* 获取Asset下文本内容
*/
public static String getStringFormAsset(Context context, String str) {
BufferedReader in = null;
try {
in = new
BufferedReader(new InputStreamReader(context.getAssets().open(str)));
String line;
StringBuilder buffer = new StringBuilder();
while ((line = in.readLine()) != null) {
buffer.append(line).append('\n');
}
return buffer.toString();
} catch (IOException e) {
e.printStackTrace();
return "";
} finally {
if (in != null) {
try {
in.close();
in = null;
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
四、LoopView主要方法
// 设置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);

作者:杰瑞教育
出处:http://www.cnblogs.com/jerehedu/

Android 开源组件 ----- Android LoopView无限自动轮转控件的更多相关文章

  1. android 开发进阶 自定义控件-仿ios自动清除控件

    先上图: 开发中经常需要自定义view控件或者组合控件,某些控件可能需要一些额外的配置.比如自定义一个标题栏,你可能需要根据不同尺寸的手机定制不同长度的标题栏,或者更常见的你需要配置标题栏的背景,这时 ...

  2. AndroidUI开源组件库BottomView 第三方自定义UI控件

    这里分享一个Android的非常经典实用而且简单方便的第三方UI控件库:BottomView(小米的米UI也用到了这个) 原文  http://blog.csdn.net/opzoonzhuzheng ...

  3. Android UI组件之自定义控件实现IP地址控件

    http://www.cnblogs.com/razerlack/p/4273282.html

  4. [js开源组件开发]js手机端浮层控件,并有多种弹出小提示,兼容pc端浏览器

    js dialog组件,包含alert和confirm的实现 本组件所有的资源均在github上可以查看源代码 GitHub 本dialog的组件的例子请在这里查看 demo dialog js di ...

  5. [js开源组件开发]js多选日期控件

    js多选日期控件 详情请见:http://www.lovewebgames.com/jsmodule/calendar.html 它的github地址:https://github.com/tianx ...

  6. Android文字跑马灯控件(文本自动滚动控件)

    最近在开发一个应用,需要用到文本的跑马灯效果,图省事,在网上找,但老半天都找不到,后来自己写了一个,很简单,代码如下: import android.content.Context; import a ...

  7. 怎样在Android实现桌面清理内存简单Widget小控件

    怎样在Android实现桌面清理内存简单Widget小控件 我们常常会看到类似于360.金山手机卫士一类的软件会带一个widget小控件,显示在桌面上,上面会显示现有内存大小,然后会带一个按键功能来一 ...

  8. Android 打造完美的侧滑菜单/侧滑View控件

    概述 Android 打造完美的侧滑菜单/侧滑View控件,完全自定义实现,支持左右两个方向弹出,代码高度简洁流畅,兼容性高,控件实用方便. 详细 代码下载:http://www.demodashi. ...

  9. ANDROID L——Material Design详解(UI控件)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! Android L: Google已经确认Android L就是Android Lolli ...

随机推荐

  1. js数组去重方法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. storm配置项目

    java.library.path: “/usr/local/lib:/opt/local/lib:/usr/lib”### storm.* configs are general configura ...

  3. 【双标记线段树】bzoj1798维护序列seq

    一.题目 描述 老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成. 有长为N的数列,不妨设为a1,a2,-,aN .有如下三种操作形式: (1)把数列中的一段数全部乘一个值; (2)把数列 ...

  4. 微信小程序文件结构

    在小程序的跟目录有三个文件 app.js   小程序逻辑   必须有app.json 小程序公共设置  必须有app.wxss 小程序公共样式表  非必须有 小程序的每个页面是一个文件夹 里面包含4种 ...

  5. Linux命令基本格式及目录处理命令

    命令提示符 [root@localhost ~]# root:当前登录用户 localhost:主机名 ~:当前所在的目录,此处为"家"目录 #:root超级用户的提示符,如果是普 ...

  6. SQL Server 2012 管理新特性:AlwaysOn【转】

    http://jimshu.blog.51cto.com/3171847/871169 见超链接

  7. c语言期末复习题

    代码参考:<K&R> 1.单词计数 #include<stdio.h> #define IN 1 #define OUT 0 main() { int c, state ...

  8. [Excel] Excel固定任意行或者任意列

    固定第一行第一列:点击B2单元格[以B2为中介点,找你冻结部分的中介点!行列的交叉点!] 例如只想固定第一行,那么请选择A2的单元格 为中介点,A3.A4…… 例如只想固定第一列,那么请选择B1的单元 ...

  9. How do I install Adobe Flash on Debian Wheezy?

    aptitude install flashplugin-nonfreeif fail Check your settings in /etc/apt/sources.list. If this is ...

  10. CentOS7 安装RabbitMQ

    第一.下载erlang和rabbitmq-server的rpm: http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos. ...