你是否有遇到这样的问题,每次开发一个新的项目,在 viewpager 这一块上,总是在做重复的东西,比如app引导页,轮播图,
viewpager+fragment 的 tab 指示器等等,这些虽然简单,但却是每个app都要的,而且很耗时,有没有每次在写这个,都很无语的感觉呢?
基于上面这种情况,ViewPagerHelper 就诞生了。ViewPagerHelper 是一个能快速帮你的完成 app引导页,轮播,和viewpager 指示器的工具,
内面内置了常用属性,满足你日常对油腻的师姐的一切幻想,解放你的双手,释放你的灵魂。。。。。
ViewPagerHelper
这是一个 viewpager 的工具类,可以帮助你快速实现,app启动页、图片轮播、viewpager + fragment 等功能,并添加多种指示器功能
How to use
这里用的是 jitpack 这个网站,所以:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
然后在你的 module 中添加:
compile 'com.github.LillteZheng:ViewPagerHelper:v0.1'
目前还只是添加了app首次启动引导页,还是图片轮播图;后期将会加入更多的内容
效果图
首先,大家最常用到的就是轮播图了,这里给大家提供了 4 中常用的 Indicator
1、轮播图
第一个,仿魅族的轮播图,加底部放大圆点:
这里解释一下底部圆点放大的原理,其实非常简单,就是用一个 shade,里面配置成 圆点,然后在代码中去设置透明度和放大缩小,就是这么简单;小伙伴们可以先按照这个思路自己做一下,或者可以下载代码验证一下。
第二个,现在比较流行的弧形图片
这个是比较流行的,像淘宝,京东这些,都用了这个;这个弧形imageview 呢,也很简单,相信学习过抛物线大神的自定义专栏,这个马上就能想到了用什么方法了;没错,就是用 BitmapShader,对图片进行裁剪,所以,我们可以用 path 把要绘制的形状弄出来,再用 BitmapShader 对图片进行裁剪即可。
如果你要使用弧形图片,可以用 ArcImageView 这个控件,可以这样配置:
<!--弧形图片,arc_height 为弧度的高度-->
<com.zhengsr.viewpagerlib.view.ArcImageView
android:id="@+id/arc_icon"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:arc_height="15dp"
android:scaleType="centerCrop"/>
第三个,底部指示器是移动的,看起来比较舒服
TransIndicator 提供了两种,一个是如图的椭圆形,还是就是圆点,可以选择自己喜欢的。它的原理呢,其实也不难,就是先写好4个小圆条,然后再绘制白色的圆条,再根据 viewpager 的 onPageScrolled 获取距离的变化,改变 canvas.translate 的绘制位置即可。
第四个,底部指示器文字版本
详细介绍,可以看这篇博客:
http://blog.csdn.net/u011418943/article/details/78493002