Android 开源组件 ----- Android LoopView无限自动轮转控件
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无限自动轮转控件的更多相关文章
- android 开发进阶 自定义控件-仿ios自动清除控件
先上图: 开发中经常需要自定义view控件或者组合控件,某些控件可能需要一些额外的配置.比如自定义一个标题栏,你可能需要根据不同尺寸的手机定制不同长度的标题栏,或者更常见的你需要配置标题栏的背景,这时 ...
- AndroidUI开源组件库BottomView 第三方自定义UI控件
这里分享一个Android的非常经典实用而且简单方便的第三方UI控件库:BottomView(小米的米UI也用到了这个) 原文 http://blog.csdn.net/opzoonzhuzheng ...
- Android UI组件之自定义控件实现IP地址控件
http://www.cnblogs.com/razerlack/p/4273282.html
- [js开源组件开发]js手机端浮层控件,并有多种弹出小提示,兼容pc端浏览器
js dialog组件,包含alert和confirm的实现 本组件所有的资源均在github上可以查看源代码 GitHub 本dialog的组件的例子请在这里查看 demo dialog js di ...
- [js开源组件开发]js多选日期控件
js多选日期控件 详情请见:http://www.lovewebgames.com/jsmodule/calendar.html 它的github地址:https://github.com/tianx ...
- Android文字跑马灯控件(文本自动滚动控件)
最近在开发一个应用,需要用到文本的跑马灯效果,图省事,在网上找,但老半天都找不到,后来自己写了一个,很简单,代码如下: import android.content.Context; import a ...
- 怎样在Android实现桌面清理内存简单Widget小控件
怎样在Android实现桌面清理内存简单Widget小控件 我们常常会看到类似于360.金山手机卫士一类的软件会带一个widget小控件,显示在桌面上,上面会显示现有内存大小,然后会带一个按键功能来一 ...
- Android 打造完美的侧滑菜单/侧滑View控件
概述 Android 打造完美的侧滑菜单/侧滑View控件,完全自定义实现,支持左右两个方向弹出,代码高度简洁流畅,兼容性高,控件实用方便. 详细 代码下载:http://www.demodashi. ...
- ANDROID L——Material Design详解(UI控件)
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! Android L: Google已经确认Android L就是Android Lolli ...
随机推荐
- Linux之常用快捷键
tab:自动补齐命令或者路径 ESC+u:将字符小写变大写 ctrl+s:在终端中冻结stdin ctrl+q:在终端中恢复stdin ctrl+a:光标移动到行首 ctrl+e:光标移动到行尾 ct ...
- asp.net 捕获throw
<script type="text/javascript"> function pageLoad() { Sys.WebForms.PageRequestManage ...
- AC自动机——Uva 11468 子串
题目链接:http://vjudge.net/contest/142513#problem/A 题意:给出一些字符和各自对应的选择概率,随机选择L次后将得到一个长度为L的随机字符串S.给出K个模版串, ...
- centos minimal 开启无线网卡 & 查看IP
minimal版本默认不启动网络,所以要自己配置. 配置过程很简单,编辑配置文件 vi /etc/sysconfig/network-script/ifcfg-eth0 需要更改两项 NM_CONTR ...
- 浅析C#深拷贝与浅拷贝
1.深拷贝与浅拷贝 拷贝即是通常所说的复制(Copy)或克隆(Clone),对象的拷贝也就是从现有对象复制一个“一模一样”的新对象出来.虽然都是复制对象,但是不同的 复制方法,复制出来的新对象却并 ...
- 微内核架构(Microkernel Architecture)
微内核架构(Microkernel Architecture) 微内核架构有时也被成为插件架构模式(plug-in architecture pattern),通常用于实现基于产品的应用,如Eclip ...
- JDBC连接sql server数据库及其它
JDBC连接sql server数据库的步骤如下: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的 ...
- (五)socket实践编程
1.服务器端程序编写 (1)socket(2)bind(3)listen(4)accept,返回值是一个fd,accept正确返回就表示我们已经和前来连接我的客户端之间建立了一个TCP连接了,以后我们 ...
- nginx配置文件结构
nginx配置文件结构 全局参数 配置系统全局参数如:worker_processes 工作子进程数量.error_log 错误日志路径.pid 进程IDEvent一般是配置nginx工作模式及连 ...
- Laravel 流程分析——应用程序初始化
在整体分析中,我们看到Laravel首先会进行一个app的初始化,代码如下: $app = require_once __DIR__.'/../bootstrap/app.php'; 我们具体看看ap ...