Android中banner的使用步骤

Step 1.依赖banner

Gradle

dependencies{
compile 'com.youth.banner:banner:1.4.9' //最新版本
}

或者引用本地lib

compile project(':banner')

Step 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" />

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

!!!此步骤可以省略,直接在Activity或者Fragment中new 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="高度自己设置" />

Step 4.重写图片加载器

public class GlideImageLoader extends ImageLoader {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
/**
注意:
1.图片加载器由自己选择,这里不限制,只是提供几种使用方法
2.返回的图片路径为Object类型,由于不能确定你到底使用的那种图片加载器,
传输的到的是什么格式,那么这种就使用Object接收和返回,你只需要强转成你传输的类型就行,
切记不要胡乱强转!
*/
eg: //Glide 加载图片简单用法
Glide.with(context).load(path).into(imageView); //Picasso 加载图片简单用法
Picasso.with(context).load(path).into(imageView); //用fresco加载图片简单用法,记得要写下面的createImageView方法
Uri uri = Uri.parse((String) path);
imageView.setImageURI(uri);
} //提供createImageView 方法,如果不用可以不重写这个方法,主要是方便自定义ImageView的创建
@Override
public ImageView createImageView(Context context) {
//使用fresco,需要创建它提供的ImageView,当然你也可以用自己自定义的具有图片加载功能的ImageView
SimpleDraweeView simpleDraweeView=new SimpleDraweeView(context);
return simpleDraweeView;
}
}

Step 5.在Activity或者Fragment中配置Banner

--------------------------简单使用-------------------------------
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Banner banner = (Banner) findViewById(R.id.banner);
//设置图片加载器
banner.setImageLoader(new GlideImageLoader());
//设置图片集合
banner.setImages(images);
//banner设置方法全部调用完毕时最后调用
banner.start();
}
--------------------------详细使用-------------------------------
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Banner banner = (Banner) findViewById(R.id.banner);
//设置banner样式
banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE);
//设置图片加载器
banner.setImageLoader(new GlideImageLoader());
//设置图片集合
banner.setImages(images);
//设置banner动画效果
banner.setBannerAnimation(Transformer.DepthPage);
//设置标题集合(当banner样式有显示title时)
banner.setBannerTitles(titles);
//设置自动轮播,默认为true
banner.isAutoPlay(true);
//设置轮播时间
banner.setDelayTime(1500);
//设置指示器位置(当banner模式中有指示器时)
banner.setIndicatorGravity(BannerConfig.CENTER);
//banner设置方法全部调用完毕时最后调用
banner.start();
}
-----------------当然如果你想偷下懒也可以这么用--------------------
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Banner banner = (Banner) findViewById(R.id.banner);
banner.setImages(images).setImageLoader(new GlideImageLoader()).start();
}

Step 6.(可选)增加体验

//如果你需要考虑更好的体验,可以这么操作
@Override
protected void onStart() {
super.onStart();
//开始轮播
banner.startAutoPlay();
} @Override
protected void onStop() {
super.onStop();
//结束轮播
banner.stopAutoPlay();
}

最新文章

  1. 今天踩过的坑——structs和spring
  2. 全球2/3的DNS瘫痪 顶级域名根服务器故障
  3. hadoop概述测试题和基础模版代码
  4. C#分页类
  5. (转载)目前最细致清晰的NSDictionary以及NSMutableDictionary用法总结
  6. bzoj 1222: [HNOI2001]产品加工 dp
  7. Java实战之04JavaWeb-07Listener和Filter
  8. Cisco 交换机与路由器故障处理方法分享
  9. JS和jQuery获取节点的兄弟,父级,子级元素
  10. RESTful API -备
  11. Eclipse的Tomcat热部署,免重启的方法
  12. Lintcode--003(乱序字符串)
  13. InnoDB的约束机制
  14. NaN(Not a Number)问题
  15. cas 4.1.4单点登录实战
  16. RocketMQ4.3.X关于设置useEpollNativeSelector = true报错问题
  17. 如何使用RestTemplate访问restful服务
  18. RabbitMQ快速入门
  19. iOS-UIImage图片绘制颜色
  20. 详谈Oracle12c新特点容器数据库&amp;amp;可插拔数据库(CDB&amp;amp;PDB)

热门文章

  1. codeforce C. Maximal Intersection
  2. Linux(CentOS) Mysql 8.0.30 安装(多源安装)
  3. 【Java SpringBoot】RestTemplate使用postForObject发送请求,接收String类型的response时中文乱码
  4. 设置view的圆角和阴影
  5. MYSQL 5.7及以上【ONLY_FULL_GROUP_BY】报错和解决方法
  6. Word运行 没有注册类
  7. KiCad,一款开源的PCB设计软件
  8. 第三周day3
  9. python之路3:文件操作和函数基础
  10. VM安装linux2022、设置root密码、设置国内更新源