banner的使用
2024-10-21 13:36:51
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();
}
最新文章
- 今天踩过的坑——structs和spring
- 全球2/3的DNS瘫痪 顶级域名根服务器故障
- hadoop概述测试题和基础模版代码
- C#分页类
- (转载)目前最细致清晰的NSDictionary以及NSMutableDictionary用法总结
- bzoj 1222: [HNOI2001]产品加工 dp
- Java实战之04JavaWeb-07Listener和Filter
- Cisco 交换机与路由器故障处理方法分享
- JS和jQuery获取节点的兄弟,父级,子级元素
- RESTful API -备
- Eclipse的Tomcat热部署,免重启的方法
- Lintcode--003(乱序字符串)
- InnoDB的约束机制
- NaN(Not a Number)问题
- cas 4.1.4单点登录实战
- RocketMQ4.3.X关于设置useEpollNativeSelector = true报错问题
- 如何使用RestTemplate访问restful服务
- RabbitMQ快速入门
- iOS-UIImage图片绘制颜色
- 详谈Oracle12c新特点容器数据库&;amp;可插拔数据库(CDB&;amp;PDB)
热门文章
- codeforce C. Maximal Intersection
- Linux(CentOS) Mysql 8.0.30 安装(多源安装)
- 【Java SpringBoot】RestTemplate使用postForObject发送请求,接收String类型的response时中文乱码
- 设置view的圆角和阴影
- MYSQL 5.7及以上【ONLY_FULL_GROUP_BY】报错和解决方法
- Word运行 没有注册类
- KiCad,一款开源的PCB设计软件
- 第三周day3
- python之路3:文件操作和函数基础
- VM安装linux2022、设置root密码、设置国内更新源