1.Banner介绍

现在的绝大数app都有banner界面,实现循环播放多个广告图片和手动滑动循环等功能。

2.使用环境配置(具体可见github开源项目)

(1)添加依赖

在build.gradle(app)文件内添加依赖

dependencies{
compile 'com.youth.banner:banner:1.4.10' //最新版本
   implementation 'com.github.bumptech.glide:glide:3.7.0'
}

(2)添加权限到你的 AndroidManifest.xml

<!-- if you want to load images from the internet -->
<uses-permission android:name="android.permission.INTERNET" /> <!-- if you want to load images from a file OR from the internet -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

(3)在布局文件中添加Banner,可以设置自定义属性

<com.youth.banner.Banner
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/banner"
android:layout_width="match_parent"
android:layout_height="高度自己设置" />

3.使用案例

(1)xml文件布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity"> <com.youth.banner.Banner xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/banner"
android:layout_width="match_parent"
android:layout_height="150dp" /> </LinearLayout>

(2)java后台

<1>图片加载器

package com.example.administrator.test63advertisebanner;

import android.content.Context;
import android.widget.ImageView; import com.bumptech.glide.Glide;
import com.youth.banner.loader.ImageLoader; /**
* 图片加载器
*/
public class GlideImageLoader extends ImageLoader {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
//Glide 加载图片简单用法
Glide.with(context)
.load(path)
.into(imageView);
}
}

<2>MainActivity.java

package com.example.administrator.test63advertisebanner;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle; import com.youth.banner.Banner;
import com.youth.banner.BannerConfig; import java.util.ArrayList;
import java.util.List; public class MainActivity extends AppCompatActivity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//资源文件
List<Integer> images=new ArrayList<>();
List<String> titleList=new ArrayList<>();
images.add(R.mipmap.a);
images.add(R.mipmap.b);
images.add(R.mipmap.c);
images.add(R.mipmap.d);
titleList.add("iphonexr牛逼");
titleList.add("手机王牌对王牌");
titleList.add("华为P30");
titleList.add("梁山伯与祝英台");
Banner banner = findViewById(R.id.banner);
//设置内置样式,共有六种可以点入方法内逐一体验使用。
banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE);
//设置图片加载器
banner.setImageLoader(new GlideImageLoader());
//设置图片集合
banner.setImages(images);
//设置轮播图的标题集合
banner.setBannerTitles(titleList);
//banner设置方法全部调用完毕时最后调用
banner.start();
}
}

4.效果图

最新文章

  1. Windows下虚拟机安装Ubuntu15.10 Destop简易操作过程
  2. [转]Java 征途:行者的地图
  3. 关于ruby重构的过程中去除不必要的format
  4. C# Color Table颜色对照表
  5. LMAX Disruptor – High Performance, Low Latency and Simple Too 转载
  6. Cloud Computing Deployment Models
  7. Flume NG中的ElasticSearch Sink
  8. HDOJ2031进制转换
  9. 阅读zepto.js的core中的Core methods
  10. .NET Core RSA密钥的xml、pkcs1、pkcs8格式转换和JavaScript、Java等语言进行对接
  11. jquery validate 动态增加删除验证规则(转载)
  12. POI ZAW
  13. 微信小程序基础之input输入框控件
  14. 使用Multiplayer Networking做一个简单的多人游戏例子-3/3(Unity3D开发之二十七)
  15. 好代码是管出来的——.Net Core中的单元测试与代码覆盖率
  16. Ubuntu18安装Pycharm时遇到的几个问题
  17. 软件测试面试必问--bug交互流程
  18. Xamarin打包
  19. Python自学:第三章 倒着打印列表
  20. Dinner

热门文章

  1. SpringMVC将通过ajax发送的 json数据封装成JavaBean
  2. [学习笔记] 二叉查找树/BST
  3. 你未必知道的49个CSS知识点
  4. NoSql数据库Redis系列(4)——Redis数据持久化(AOF)
  5. 小福bbs-冲刺日志(第五天)
  6. curl获得cookie数据&lt;转&gt;
  7. etcd常用命令记录
  8. OpenCv dnn模块扩展研究(1)--style transfer
  9. linux服务之dns
  10. DataSource接口 Connection pooling(连接池