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 ...
随机推荐
- [已解决] 日常开发中禁用Tomcat自动重启
最近做了一些Java Web开发,发现每次修改完java或者其他文件后tomcat都会重新加载一次项目,很耽误事,如何禁用Tomcat自动重启呢, 找到server.xml中的这一行,把其中的 rel ...
- python: HTML之 鼠标放上去下拉项字体显示不同颜色
鼠标放上去下拉项字体显示不同颜色 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "h ...
- tas5721 驱动
Submitter Mark Brown Date March 31, 2016, 5:33 p.m. Message ID <E1algTO-0004Cm-Ga@finisterre> ...
- 关于cookie的文章(cookie与session机制)
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...
- noi 9271 奶牛散步
题目链接:http://noi.openjudge.cn/ch0206/9271/ 同noi 踩方格,但是题目有问题,%12345,我也是看了discuss才知道的. #include <bit ...
- VS下的解决方案目录结构设置和管理
转载:http://blog.csdn.net/pl20140910/article/details/52074165 为了方便管理自己写的代码,也为了日后工作能方便的查找之前做过相同的代码,仿照某源 ...
- [bzoj3555]企鹅QQ(hash)
3555: [Ctsc2014]企鹅QQ Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 1645 Solved: 616[Submit][Statu ...
- web过滤器中获取请求的参数(content-type:multipart/form-data)
1.前言: 1.1 在使用springMVC中,需要在过滤器中获取请求中的参数token,根据token判断请求是否合法: 1.2 通过requst.getParameter(key)方法获得参数值; ...
- redis 配置应用(摘)
Redis可以在没有配置文件的情况下通过内置的配置来启动,但是这种启动方式只适用于开发和测试. 合理的配置Redis的方式是提供一个Redis配置文件,这个文件通常叫做redis.conf. redi ...
- javascript数组常用方法汇总
1.join()方法: Array.join()方法将数组中所以元素都转化为字符串链接在一起,返回最后生成的字符串.也可以指定可选的字符串在生成的字符串中来分隔数组的各个元素.如果不指定分隔符,默认使 ...