版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/true100/article/details/84648365
Android项目中几乎都会用到有轮播效果的Bannner图片,实现方法很多种。网上也有很多框架可以使用,比如banner框架,项目地址是:https://github.com/youth5201314/banner。
Kotlin开发的项目当然也能用。过程如下:
- 项目中配置
1.1:配置Kotlin
gradle文件中添加:
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
//添加引用,版本是1.2.71
implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
1.2:配置banner:
//banner引用
compile 'com.youth.banner:banner:1.4.10'
//加载网络图片框架Glide引用
compile 'com.github.bumptech.glide:glide:4.8.0'
- 使用banner实现轮播图:
主要代码:
class MainActivity : AppCompatActivity() {
//图片集合
val images = mutableListOf("http://img3.imgtn.bdimg.com/it/u=2758743658,581437775&fm=15&gp=0.jpg",
"http://img3.imgtn.bdimg.com/it/u=2105877023,3759180926&fm=15&gp=0.jpg",
"http://img2.imgtn.bdimg.com/it/u=1876814088,3589919070&fm=15&gp=0.jpg")
//标题集合
val titles = mutableListOf("图片1", "图片2", "图片3")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
initBanner();
mBanner.setImageLoader(GlideImageLoader())
}
override fun onStart() {
super.onStart()
//自动播放
mBanner.startAutoPlay()
}
private fun initBanner() {
//设置banner样式
mBanner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE);
//设置图片加载器
mBanner.setImageLoader(GlideImageLoader());
//设置图片集合
mBanner.setImages(images);
//设置banner动画效果
mBanner.setBannerAnimation(Transformer.DepthPage);
//设置标题集合(当banner样式有显示title时)
mBanner.setBannerTitles(titles);
//设置自动轮播,默认为true
mBanner.isAutoPlay(true);
//设置轮播时间
mBanner.setDelayTime(1500);
//设置指示器位置(当banner模式中有指示器时)
mBanner.setIndicatorGravity(BannerConfig.CENTER);
//banner设置方法全部调用完毕时最后调用
mBanner.start();
}
override fun onStop() {
super.onStop()
//停止播放
mBanner.stopAutoPlay()
}
}
其中要重写图片加载器:
internal class GlideImageLoader : ImageLoader() {
override fun displayImage(context: Context, path: Any, imageView: ImageView) {
//Glide 加载图片简单用法
Glide.with(context).load(path).into(imageView)
}
}
以上几步就可以实现图片轮播效果,更多功能比如图片点击,动画等可以上github学习。