转自:https://github.com/pinguo-zhouwei/MZBannerView

MZBannerView

现在的APP Banner大多数千篇一律,前几天看到魅族手机上所有魅族自家APP上的Banner效果不错,于是就想着来仿着做一个类似的效果。因此就有了这个库。但是为了使用方便,这个库不仅仅只有仿魅族效果的BannerView 来使用,还可以当作普通的BannerView 来使用,还可以当作一个ViewPager 来使用。使用很方便,具体使用方法和API 请看后面的示例。

 ---  左图为魅族APP上的Banner效果,右图是高仿效果。

MZBannerView 有以下功能:

1 . 仿魅族BannerView 效果。

2 . 当普通Banner 使用

3 . 当普通ViewPager 使用。

4 . 当普通ViewPager使用(有魅族Banner效果)

Demo APK

gif图片有点模糊,可以扫描下方二维码下载APK体验

Dependency

Add it in your root build.gradle at the end of repositories:

allprojects {repositories {...maven { url 'https://jitpack.io' }}
}

Step 2. Add the dependency

dependencies {compile 'com.github.pinguo-zhouwei:MZBannerView:v1.0.1'
}

自定义属性

属性名 属性意义 取值
open_mz_mode 是否开启魅族模式 true 为魅族Banner效果,false 则普通Banner效果
canLoop 是否轮播 true 轮播,false 则为普通ViewPager
indicatorPaddingLeft 设置指示器距离左侧的距离 单位为 dp 的值
indicatorPaddingRight 设置指示器距离右侧的距离 单位为 dp 的值
indicatorAlign 设置指示器的位置 有三个取值:left 左边,center 剧中显示,right 右侧显示

通过open_mz_modecanLoop这两个属性来控制MZBannerView 是用作Banner还是普通ViewPager,有4种组合方式

1,仿魅族BannerView(默认的模式)

app:open_mz_mode="true"
app:canLoop="true"

2, 普通BannerView

app:open_mz_mode="false"
app:canLoop="true"

3 ,普通ViewPager (有魅族Banner的切换动画)

app:open_mz_mode="true"
app:canLoop="false"

4, 普通ViewPager

app:open_mz_mode="false"
app:canLoop="false"

使用方法

1 . xml 布局文件

 <com.zhouwei.mzbanner.MZBannerViewandroid:id="@+id/banner"android:layout_width="match_parent"android:layout_height="200dp"android:layout_marginTop="10dp"app:open_mz_mode="true"app:canLoop="true"app:indicatorAlign="center"app:indicatorPaddingLeft="10dp"/>

2 . activity中代码:

        mMZBanner = (MZBannerView) view.findViewById(R.id.banner);// 设置数据mMZBanner.setPages(list, new MZHolderCreator<BannerViewHolder>() {@Overridepublic BannerViewHolder createViewHolder() {return new BannerViewHolder();}});public static class BannerViewHolder implements MZViewHolder<Integer> {private ImageView mImageView;@Overridepublic View createView(Context context) {// 返回页面布局View view = LayoutInflater.from(context).inflate(R.layout.banner_item,null);mImageView = (ImageView) view.findViewById(R.id.banner_image);return view;}@Overridepublic void onBind(Context context, int position, Integer data) {// 数据绑定mImageView.setImageResource(data);}}

3 .如果是当Banner使用,注意在onResume 中调用start()方法,在onPause中调用 pause() 方法。如果当普通ViewPager使用,则不需要。

 @Overridepublic void onPause() {super.onPause();mMZBanner.pause();//暂停轮播}@Overridepublic void onResume() {super.onResume();mMZBanner.start();//开始轮播}

其他对外API

    /******************************************************************************************************//**                             对外API                                                               **//******************************************************************************************************///开始轮播start()//停止轮播pause()//设置BannerView 的切换时间间隔setDelayedTime(int delayedTime)// 设置页面改变监听器addPageChangeLisnter(ViewPager.OnPageChangeListener onPageChangeListener)//添加Page点击事件setBannerPageClickListener(BannerPageClickListener bannerPageClickListener)//设置是否显示IndicatorsetIndicatorVisible(boolean visible)// 获取ViewPagerViewPager getViewPager()// 设置 Indicator资源setIndicatorRes(int unSelectRes,int selectRes)//设置页面数据setPages(List<T> datas,MZHolderCreator mzHolderCreator)//设置指示器显示位置setIndicatorAlign(IndicatorAlign indicatorAlign)//设置ViewPager(Banner)切换速度setDuration(int duration)

因为是对ViewPager的包装,所有要设置某些ViewPager的属性,可以通过getViewPager 获取到ViewPager再设置对应属性

效果图:

1, BannerView 轮播效果图:

2 ,普通ViewPager效果图:

Thanks

感谢Android-ConvenientBanner,Android-ConvenientBanner 是一个不错的Banner库,我也参考了其中的部分代码 有兴趣的可以去看一下这个库。

一个刁刁的卡片样式广告轮播相关推荐

  1. html文字图片一起轮播卡片,简单的堆叠卡片样式jQuery轮播图插件

    MxSlider.js是一款堆叠卡片样式的jQuery响应式轮播图插件.该轮播图插件兼容IE8浏览器,采用响应式设计,它在图片切换时,就像一叠扑克牌将最上面一张挪开的效果. 使用方法 在页面中引入Mx ...

  2. android 层叠轮播,vue手写一个卡片化层叠轮播(支持滑动,移动端连续滚动,点击)...

    项目需求,需要写一个卡片化层叠的轮播,找了下插件都没有合适的,于是写了一个展示5个卡片的轮播 先看效果图: 卡片化层叠轮播 5个卡片要计算各自的高度,宽度,利用相对定位计算出各自的位置 然后trans ...

  3. 安卓开发笔记——自定义广告轮播Banner(实现无限循环)

    关于广告轮播,大家肯定不会陌生,它在现手机市场各大APP出现的频率极高,它的优点在于"不占屏",可以仅用小小的固定空位来展示几个甚至几十个广告条,而且动态效果很好,具有很好的用户& ...

  4. jquery广告轮播插件

    大家平时在项目中很多时候也用到广告轮播图,我也不例外,为了避免重复工作,自己编写了一个兼容所有浏览器的广告轮播插件,调用非常简单.(ps:可以很灵活的修改,以满足不同的需求) js代码: (funct ...

  5. Android 自动广告轮播图

    近来项目忙完了,觉得自己的自动广告轮播 蛮不错的 ,所以分享出来.先说说他的功能,第一能够实现自动轮播 图片 ,第二可以修改自动更换广告条的小点默认是圆形的 可以修改为小的正方向 ,同时 还可以修改 ...

  6. android 广告轮播图片+视频+音频

    一.近期有一个需求要实现一款定制化开发的一款广告轮播视频+图片+音频的结合,来吧接下来操作起来.因为发现Viewpager 轮播的监听总会频繁调用导致体验不太好 这边是使用RecyclerView+H ...

  7. android banner指示器高度,Android 广告轮播 -ConvenientBanner 指示器大小、bottomMargin,leftMarfin的修改。...

    在Android开发时,广告轮播我的项目是使用的ConvenientBanner 来实现的,效果也很好.但是有一个很严格的设计师,需要完全按照她的设计来实现,突然发现ConvenientBanner ...

  8. 广告轮播图的前后台实现

    这个广告轮播系统是老师布置的前端实训的一个结课作业. 前端: 图片在广告位进行有时间性的轮播. 在两侧有前进和后退的操作. 在下面有几张轮播图的小框框,用来显示图片的进度, 点击小框框还可以立刻跳转到 ...

  9. Android商城开发----viewPager实现广告轮播(在首页Fragment中实现)

    Android商城开发----在商城首页Fragment使用viewPager实现广告轮播 写在前面:本篇文章建立在创建底部导航栏之后,对商城首页进行开发.创建底部导航栏的内容请查看:Android开 ...

最新文章

  1. Android aar 代码查看
  2. 【高并发】高并发环境下构建缓存服务需要注意哪些问题?我和阿里P9聊了很久!...
  3. 使用tag标签是SEO优化的重要性是什么?
  4. PPT 下载 | 神策数据杜明翰:打造趁手、好用的标签用户画像系统
  5. 网易云信项望烽:开源最初都是被动的
  6. [转]解读Unity中的CG编写Shader系列3——表面剔除与剪裁模式
  7. 【转】文件读写NDK(或Linux)
  8. 微云 linux_编年史与微云
  9. java二维数组的遍历
  10. 比dropout更好的方法_比较自己的更好方法
  11. Matlab常用图像操作
  12. WindowsXamlHost:在 WPF 中使用 UWP 的控件(Windows Community Toolkit)
  13. Django扩展 —— uwsgi+nginx部署
  14. 11.性能之巅 洞悉系统、企业与云计算 --- 云计算
  15. 计算机网络网桥模拟课程设计,网桥模拟实验
  16. 解决 required a bean of type ‘com.aliyun.oss.OSSClient‘ that could not be found
  17. c语言复杂万年历带农历,c语言实现农历万年历(48页)-原创力文档
  18. html海南地图插件,Echarts 地图(map)插件之 鼠标HOVER和tooltip自定义数据
  19. 以太坊宠物商店 - 记录第一个Dapp
  20. route add命令详解

热门文章

  1. 大学计算机作业互评评语简短,大学学生互评评语100字简短
  2. 算法初体验之欧几里得算法
  3. 瑞芯微鸿蒙移植,鸿蒙内核liteos_a移植补丁-支持rk3126c rk3288 rv1126
  4. android6.0.1隐藏功能,安卓6.0系统界面调谐器怎么使用?安卓6.0隐藏功能开启和使用方法[多图]...
  5. CSS峰会亮点直击,大咖共议产业上云的安全“最优解”
  6. 史上最简单笔记本选购攻略(给对笔记本配置完全不懂的小白,建议收藏)
  7. 互联网基础结构发展的三个阶段
  8. 面试时如何谈自己的兴趣爱好
  9. 2023年新自采集壁纸网页源码+简约大气
  10. Ubuntu 16.04卸载LibreOffice等不常用软件