查看: 561|回复: 0

[Android教程] Android自定义封装banner组件

发表于 2017-11-28 08:00:01

自定义封装 banner 组件,供大家参考,具体内容如下

1. 效果图预览

2.基本功能

一个简单方便的轮播图组件,基于viewpager 基础上进行的封装。
可设置 项目中图片,网络图片, View;
支持循环自动播放,手势滑动切换,item点击事件,可设置 点点的样式宽高、颜色、大小、位置 ;
可设置蒙层;可设置 是否允许滑动;可设置 是否允许循环。

3.基本实现

1). 自定义属性

  1. <declare-styleable name="BannerLayoutStyle">
  2. <attr name="maskStartColor" format="color|reference" />
  3. <attr name="maskEndColor" format="color|reference" />
  4. <attr name="selectedIndicatorColor" format="color|reference" />
  5. <attr name="unSelectedIndicatorColor" format="color|reference" />
  6. <attr name="indicatorShape" format="enum">
  7. <enum name="rect" value="0" />
  8. <enum name="oval" value="1" />
  9. </attr>
  10. <attr name="selectedIndicatorHeight" format="dimension|reference" />
  11. <attr name="selectedIndicatorWidth" format="dimension|reference" />
  12. <attr name="unSelectedIndicatorHeight" format="dimension|reference" />
  13. <attr name="unSelectedIndicatorWidth" format="dimension|reference" />
  14. <attr name="indicatorPosition" format="enum">
  15. <enum name="centerBottom" value="0" />
  16. <enum name="rightBottom" value="1" />
  17. <enum name="leftBottom" value="2" />
  18. <enum name="centerTop" value="3" />
  19. <enum name="rightTop" value="4" />
  20. <enum name="leftTop" value="5" />
  21. </attr>
  22. <attr name="indicatorSpace" format="dimension|reference" />
  23. <attr name="indicatorMargin" format="dimension|reference" />
  24. <attr name="autoPlayDuration" format="integer|reference" />
  25. <attr name="scrollDuration" format="integer|reference" />
  26. <attr name="isAutoPlay" format="boolean" />
  27. <attr name="defaultImage" format="integer|reference" />
  28. <attr name="isIndicatorVisible" format="boolean" />
  29. <attr name="cornerRadii" format="dimension|reference" />
  30. </declare-styleable>
复制代码

2).基本方法

  1. //添加本地图片路径
  2. public void setViewRes(List<Integer> viewRes) {。。。}
  3. //添加网络图片路径
  4. public void setViewUrls(List<String> urls) {。。。}
  5. //添加任意View视图
  6. private void setViews2(final List<View> views) {。。。}
复制代码
  1. // 设置是否允许 循环
  2. public void setLoop(boolean loop) {
  3. }
  4. // 设置是否可以滑动
  5. public void setSlideable(boolean slideable) {
  6. }
复制代码

更多用法 详见代码,这里就不全部粘贴了。

3).使用示例:

  1. <com.dzq.widget.CustomBannerView
  2. android:id="@+id/banner"
  3. android:layout_width="match_parent"
  4. android:layout_height="wrap_content"
  5. android:layout_weight="1"
  6. app:autoPlayDuration="2000"
  7. app:defaultImage="@drawable/bg_banner"
  8. app:indicatorMargin="@dimen/indicatorMargin"
  9. app:indicatorPosition="rightBottom"
  10. app:indicatorShape="oval"
  11. app:indicatorSpace="@dimen/indicatorSpace"
  12. app:isAutoPlay="true"
  13. app:isIndicatorVisible="true"
  14. app:scrollDuration="1000"
  15. app:selectedIndicatorColor="@color/color_ec407a"
  16. app:selectedIndicatorHeight="5dp"
  17. app:selectedIndicatorWidth="5dp"
  18. app:unSelectedIndicatorColor="@color/color_71d9e7"
  19. app:unSelectedIndicatorHeight="5dp"
  20. app:unSelectedIndicatorWidth="5dp"
  21. />
  22. <com.dzq.widget.CustomBannerView
  23. android:id="@+id/banner2"
  24. android:layout_width="match_parent"
  25. android:layout_height="wrap_content"
  26. android:layout_marginTop="5dp"
  27. android:layout_weight="1"
  28. app:autoPlayDuration="2000"
  29. app:defaultImage="@drawable/bg_banner"
  30. app:indicatorMargin="@dimen/indicatorMargin"
  31. app:indicatorPosition="rightBottom"
  32. app:indicatorShape="rect"
  33. app:indicatorSpace="@dimen/indicatorSpace"
  34. app:isAutoPlay="false"
  35. app:isIndicatorVisible="true"
  36. app:scrollDuration="1000"
  37. app:selectedIndicatorColor="@color/color_ec407a"
  38. app:selectedIndicatorHeight="5dp"
  39. app:selectedIndicatorWidth="10dp"
  40. app:unSelectedIndicatorColor="@color/color_71d9e7"
  41. app:unSelectedIndicatorHeight="10dp"
  42. app:unSelectedIndicatorWidth="5dp"
  43. />
  44. <com.dzq.widget.CustomBannerView
  45. android:id="@+id/banner3"
  46. android:layout_width="match_parent"
  47. android:layout_height="wrap_content"
  48. android:layout_marginTop="5dp"
  49. android:layout_weight="1"
  50. app:cornerRadii="5dp"
  51. app:indicatorMargin="@dimen/indicatorMargin"
  52. app:indicatorPosition="centerTop"
  53. app:indicatorShape="rect"
  54. app:indicatorSpace="@dimen/indicatorSpace"
  55. app:isAutoPlay="false"
  56. app:isIndicatorVisible="true"
  57. app:maskEndColor="#00000000"
  58. app:maskStartColor="#99000000"
  59. app:scrollDuration="1000"
  60. app:selectedIndicatorColor="#00CAA9"
  61. app:selectedIndicatorHeight="10dp"
  62. app:selectedIndicatorWidth="25dp"
  63. app:unSelectedIndicatorColor="#26000000"
  64. app:unSelectedIndicatorHeight="10dp"
  65. app:unSelectedIndicatorWidth="10dp" />
复制代码

项目源码下载

导入自己项目

How to

To get a Git project into your build:

Step 1. Add the JitPack repository to your build file

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

  1. allprojects {
  2. repositories {
  3. ...
  4. maven { url 'https://jitpack.io' }
  5. }
  6. }
复制代码

Step 2. Add the dependency

  1. dependencies {
  2. compile 'com.github.dingzuoqiang:CustomBannerView:v1.0'
  3. }
复制代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持程序员之家。



回复

使用道具 举报

关闭

站长推荐上一条 /1 下一条