Android 轻量级轮播组件 CycleViewPager
2016-03-26 12:09
561 查看
最近抽空将项目中最常用的一个轮播组件做了简单的封装,支持无限轮播、设置各种属性。可以略微提高开发效率。
代码:https://github.com/heshiweij/CycleViewPager
支持自由选择加载网络图片和本地图片
优化了 bitmap 的显示,防止 oom
三级缓存优化网络图片,节省流量
支持各种属性的设置,可定制
Activity 生命周期联动
使用线程池请求网络
设置图片 URL 方式
方法汇总
注意
建议使用全局 handler,如:
setHandler(BaseApplication.getHanlder())
建议在 onDestory 取消轮播,如:
代码:https://github.com/heshiweij/CycleViewPager
特点
CycleViewPager 是一个轻量级的无限轮播图展示控件支持自由选择加载网络图片和本地图片
优化了 bitmap 的显示,防止 oom
三级缓存优化网络图片,节省流量
支持各种属性的设置,可定制
Activity 生命周期联动
使用线程池请求网络
使用方法
权限
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
布局
<cn.ifavor.cycleviewpager.view.CycleViewPager android:id="@+id/cvp_main" android:layout_width="match_parent" android:layout_height="150dip" />
代码
设置图片 ResId 方式mCycleViewPager = (CycleViewPager) findViewById(R.id.cvp_main); Map<String, Integer> map = new TreeMap<String, Integer>(); LinkedHashMap<String, Integer> map = new LinkedHashMap<String, Integer>(); map.put("1", R.drawable.a); map.put("2", R.drawable.b); map.put("3", R.drawable.c); map.put("4", R.drawable.d); map.put("5", R.drawable.e); mCycleViewPager.setResIdMap(map).setDuration(1000).start();
设置图片 URL 方式
mCycleViewPager = (CycleViewPager) findViewById(R.id.cvp_main); LinkedHashMap<String, String> map = new LinkedHashMap<String, String>(); map.put("1", "http://www.2cto.com/meinv/uploads/131124/1-1311242143022C.jpg"); map.put("2", "http://www.2cto.com/meinv/uploads/131124/1-131124214242c7.jpg"); map.put("3", "http://www.2cto.com/meinv/uploads/131124/1-131124214135a6.jpg"); map.put("4", "http://www.2cto.com/meinv/uploads/131124/1-1311242141135E.jpg"); map.put("5", "http://www.2cto.com/meinv/uploads/131124/1-13112421404R17.jpg"); mCycleViewPager.setURLMap(map).setDuration(1000).start();
方法汇总
方法 | 含义 | 建议/默认 |
---|---|---|
setBottomBackgroundColor | 设置底部背景颜色 | Color.argb(54, 0, 0, 0) |
setIndicatorRadius | 设置指示器的圆角值 | 8(px) |
setUnSelectedColor | 设置指示器未选中的颜色 | Color.rgb(61, 59, 59) |
setSelectedColor | 设置指示器选中的颜色 | Color.rgb(255, 0, 0) |
setDuration | 设置轮播器执行时间间隔 | 3000(ms) |
setIndicatorDirection | 设置指示器显示位置 | IndicatorDirection.CENTER |
setIndicatorPointSize | 设置指示器点的尺寸 | 16(px) |
setIndicatorPointMargin | 设置指示器间隔距离 | 8(px) |
setShowTitle | 设置是否显示标题 | true |
setTitleTextSize | 设置标题字体大小 | 12(px) |
setTitleTextColor | 设置标题字体颜色 | Color.rgb(255,0,0) |
setHandler | 设置 handler | 建议传入全局唯一 handler,否则新建 |
建议使用全局 handler,如:
setHandler(BaseApplication.getHanlder())
建议在 onDestory 取消轮播,如:
@Override protected void onDestroy() { super.onDestroy(); if (mCycleViewPager != null){ // 取消轮播定时器 mCycleViewPager.cancel(); } }
附录
代码:https://github.com/heshiweij/CycleViewPager相关文章推荐
- Android菜鸟的成长笔记(28)——Google官方对Andoird 2.x提供的ActionBar支持
- Android实现滑动功能的总结
- android虚拟机上安装SD卡
- 解决android sdk更新不了
- Android Studio如何添加override
- Android实现XML解析技术
- Android SlidingMenu 开源项目 侧拉菜单的使用
- android项目中,java调用kotlin代码
- android 中显示的问题
- Android Studio 安装教程
- Android APK反编译
- Android LocalActivityManager的用法
- Android NDK之JNI陷阱
- 79、 android基础教程整理 (转载)
- android ocr 身份证识别
- Android 开源框架ViewPageIndicator 和 ViewPager 仿网易新闻客户端Tab标签
- ScrollView里嵌套ListView的解决办法。
- Android Studio 快捷键(windows +mac)
- Android数据库(1)--getReadableDatabase() 和 getWritableDatabase()
- Android——Xlistview上拉刷新下拉加载