温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android中怎么利用ImageSlider实现一个炫酷轮播广告效果

发布时间:2021-06-26 17:12:12 来源:亿速云 阅读:142 作者:Leah 栏目:移动开发

这期内容当中小编将会给大家带来有关Android中怎么利用ImageSlider实现一个炫酷轮播广告效果,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

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();
 }

上述就是小编为大家分享的Android中怎么利用ImageSlider实现一个炫酷轮播广告效果了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI