使用Koglin开发Android项目之开源框架banner入门笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/true100/article/details/84648365
  Android项目中几乎都会用到有轮播效果的Bannner图片,实现方法很多种。网上也有很多框架可以使用,比如banner框架,项目地址是:https://github.com/youth5201314/banner。

Kotlin开发的项目当然也能用。过程如下:

  1. 项目中配置
    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'
  1. 使用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学习。

猜你喜欢

转载自blog.csdn.net/true100/article/details/84648365