本文实例为大家分享了AndroidImageSlider实现炫酷轮播广告的具体代码,供大家参考,具体内容如下
本文为菜鸟窝作者刘婷的连载。”商城项目实战”系列来聊聊仿”京东淘宝的购物商城”如何实现。
AndroidImageSlider 是一个神奇而且方便的 Android 图片滚动框架,在菜鸟商城项目中我们就要使用这个框架来实现炫酷的轮播广告。
AndroidImageSlider 架构分析
首先我们看图说话,下面是 AndroidImageSlider 的架构分析图。
该架构分析图中的 SliderLayout 是一个继承于 RelativeLayout 的自定义View,也是该框架的核心。它由 SliderView 和 PagerIndicator 组成。而 SliderView 分为了 DefaultSliderView 和 TextSliderView 两部分,其中 DefaultSliderView 是只支持图片加载滚动,而 TextSliderView 不仅支持图片还支持文本的显示。Transition effects 和Animation 主要是动画效果的控制,另外还有两个重要的监听事件分别为 onSliderClickListener 和 onPageChangeListener,顾名思义,一个是点击事件监听,另一个是页面切换事件监听。
基本使用
已经了解了框架的基本构造,下面就是要看如何使用了,使用的方法也很简单。
1. Gradle 依赖配置
我们这里使用的是 android Studio 2.2.3 开发工具,Eclipse 引用第三方库的具体方法可以参考AndroidImageSlider 源码说明。在 build.gradle 文件中集成第三方库的依赖。
xml
dependencies {
compile 'com.daimajia.slider:library:1.1.5@aar'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.android.support:support-v4:25.2.0'}
2. 添加权限
使用该框架还需要添加相应的权限,分别为网络权限和读文件的权限。
xml <uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
3. 添加到布局 Layout 中
将 SliderLayout 添加到相应的布局文件 Layout 中。
xml <com.daimajia.slider.library.SliderLayout android:id="@+id/home_slider_ad" android:layout_width="match_parent" android:layout_height="@dimen/large_height"></com.daimajia.slider.library.SliderLayout>
如果需要自定义的 PagerIndicator 的话,可以自定义,当然也可以使用该框架自带的,这里是自定义 PagerIndicator 的源码。
xml <com.daimajia.slider.library.Indicators.PagerIndicator android:id="@+id/home_indicator_ad" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" custom:selected_color="#0095BF" custom:unselected_color="#55333333" custom:selected_drawable="@drawable/bird" custom:shape="oval" custom:selected_padding_left="5dp" custom:selected_padding_right="5dp" custom:unselected_padding_left="5dp" custom:unselected_padding_right="5dp" android:layout_centerHorizontal="true" android:layout_alignParentBottom="true" custom:selected_width="6dp" custom:selected_height="6dp" custom:unselected_width="6dp" custom:unselected_height="6dp" android:layout_marginBottom="20dp"> </com.daimajia.slider.library.Indicators.PagerIndicator>
4. 在 Activity/Fragment 中定义以及配置 SliderLayout
首先就是要获取到 SliderLayout 控件以及自定义的 Indicator。
xml mSlider = (SliderLayout) view.findViewById(R.id.home_slider_ad); indicator =(PagerIndicator)view.findViewById(R.id.home_indicator_ad);
然后就是准备好测试的数据,我在这里定义了一个实体类 BannerInfo,包括了图片 imgUrl 和描述内容 name。定义好实体类后就开始设置相应的测试数据并且添加到滚动图片列表 listBanner 中。
xml
private void getBannerData() {
BannerInfo bannerInfo_01 = new BannerInfo();
bannerInfo_01.setName("音箱狂欢");
bannerInfo_01.setImgUrl("http://7mno4h.com2.z0.glb.qiniucdn.com/5608f3b5Nc8d90151.jpg");
BannerInfo bannerInfo_02 = new BannerInfo();
bannerInfo_02.setName("手机国庆礼");
bannerInfo_02.setImgUrl("http://7mno4h.com2.z0.glb.qiniucdn.com/5608eb8cN9b9a0a39.jpg");
BannerInfo bannerInfo_03 = new BannerInfo();
bannerInfo_03.setName("IT生活");
bannerInfo_03.setImgUrl("http://7mno4h.com2.z0.glb.qiniucdn.com/5608cae6Nbb1a39f9.jpg");
listBanner.add(bannerInfo_01);
listBanner.add(bannerInfo_02);
listBanner.add(bannerInfo_03);
}
接下来就是要配置 SliderLayout 的相关属性了,添加自定义的 Indicator,设置动画效果,添加图片列表数据以及设置监听事件
xml
private void initSlider() {
if (listBanner != null) {
for (BannerInfo bannerInfo : listBanner) {
TextSliderView textSliderView = new TextSliderView(this.getActivity());
textSliderView.image(bannerInfo.getImgUrl())
.description(bannerInfo.getName())
.setScaleType(BaseSliderView.ScaleType.CenterCrop)
.setOnSliderClickListener(this);
mSlider.addSlider(textSliderView);
}
}
mSlider.setCustomIndicator(indicator);
mSlider.setCustomAnimation(new DescriptionAnimation());
mSlider.setPresetTransformer(SliderLayout.Transformer.RotateUp);
mSlider.setDuration(3000);
mSlider.addOnPageChangeListener(this);
}
5. 在onStop() 中停止 SliderLayout 滚动
在 Activity/Fragment 生命周期结束前,需要先停止图片的滚动,防止出现内存溢出等问题。
xml
@Override
public void onStop() {
// To prevent a memory leak on rotation, make sure to call stopAutoCycle() on the slider before activity or fragment is destroyed
mSlider.stopAutoCycle();
super.onStop();
}
最终效果
运行代码,效果图如下。
AndroidImageSlider 的更多使用方法和功能介绍请参考AndroidImageSlider 源码说明。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# AndroidImageSlider
# 轮播广告
# android实现banner轮播图无限轮播效果
# Android viewpager自动轮播和小圆点联动效果
# Android viewpager无限轮播获取网络图片功能
# Android ViewPager实现无限循环轮播广告位Banner效果
# Android自定义控件实现优雅的广告轮播图
# Android使用ViewPager加载图片和轮播视频
# Android ViewPager实现轮播图效果
# Android实现基于ViewPager的无限循环自动播放带指示器的轮播图CarouselFigur
# Android实现ViewPage轮播图效果
# 详解android 视频图片混合轮播实现
# 自定义
# 是一个
# 菜鸟
# 分别为
# 第三方
# 的是
# 也很
# 要看
# 实体类
# 还需要
# 可以使用
# 顾名思义
# 自带
# 淘宝
# 大家分享
# 来实现
# 我在这里
# 两部分
# 使用这个
# 图中
相关文章:
如何通过cPanel快速搭建网站?
制作企业网站建设方案,怎样建设一个公司网站?
如何用IIS7快速搭建并优化网站站点?
如何用搬瓦工VPS快速搭建个人网站?
建站之星×万网:智能建站系统+自助建站平台一键生成
如何确保FTP站点访问权限与数据传输安全?
,怎么用自己头像做动态表情包?
如何在七牛云存储上搭建网站并设置自定义域名?
,sp开头的版面叫什么?
javascript基本数据类型及类型检测常用方法小结
如何通过wdcp面板快速创建网站?
如何在香港免费服务器上快速搭建网站?
c++怎么用jemalloc c++替换默认内存分配器【性能】
如何在IIS服务器上快速部署高效网站?
如何快速选择适合个人网站的云服务器配置?
个人网站制作流程图片大全,个人网站如何注销?
台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?
如何在宝塔面板中修改默认建站目录?
网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?
免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
如何快速搭建响应式可视化网站?
重庆网站制作公司哪家好,重庆中考招生办官方网站?
如何撰写建站申请书?关键要点有哪些?
如何自定义建站之星网站的导航菜单样式?
如何解决VPS建站LNMP环境配置常见问题?
官网建站费用明细查询_企业建站套餐价格及收费标准指南
建站之星安装后如何配置SEO及设计样式?
建站主机是否等同于虚拟主机?
已有域名和空间如何搭建网站?
制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?
建站之星安装路径如何正确选择及配置?
高性能网站服务器部署指南:稳定运行与安全配置优化方案
道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
中山网站制作网页,中山新生登记系统登记流程?
如何在Golang中使用replace替换模块_指定本地或远程路径
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
高端企业智能建站程序:SEO优化与响应式模板定制开发
非常酷的网站设计制作软件,酷培ai教育官方网站?
网站制作需要会哪些技术,建立一个网站要花费多少?
建站之星各版本价格是多少?
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
宝塔建站无法访问?如何排查配置与端口问题?
建站之星会员如何解锁更多建站功能?
宝塔面板如何快速创建新站点?
制作宣传网站的软件,小红书可以宣传网站吗?
如何快速打造个性化非模板自助建站?
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
*请认真填写需求信息,我们会在24小时内与您取得联系。