Android 轮播图Banner的简单实现

轮播图已经出来很长时间了,我也看了很多博客,看了很多的人代码,也有自己写原生的,也有用第三方框架的,学习安卓有一段时间了,决定写一写博客来记录自己的安卓学习生涯,不管以前有没有古人写过,反正我是这个来者哈哈哈;废话不多说了,进入正文吧。

Banner的简单使用步骤:

第一步 添加依赖:

compile 'com.youth.banner:banner:1.4.9'

第二步 网络权限:

//如果你的图片源是从网络来的,那你就添加个网络权限。
 <uses-permission android:name="android.permission.INTERNET" />
 //要记得读取权限也不可少哦

 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

第三步 在布局文件中添加banner组件:

//当然宽高可以自己设置。这里只是举个栗子
 <com.youth.banner.Banner
        android:id="@+id/main_banner"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

第四步 重写图片加载器:




//我个人习惯用Glide,所以用Glide写的,当然大家如果喜欢其他的可以用其他的,我在这里不做任何局限

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.with(context).load(path).into(imageView);

    }

    @Override
    public ImageView createImageView(Context context) {

        ImageView imageView = new ImageView(context);
        return imageView;
    }
}

第五步 使用Banner:

该有的配置完了,就该真正的使用啦!等了很久了吧。

public class MainActivity extends Activity {

    Banner banner;//banner组件
    List mlist;//图片资源
    List mlist1;//轮播标题

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //初始化两个集合,图片资源可以是本地,也可以是网络的url
        mlist = new ArrayList<>();
        mlist.add(R.drawable.bingxue);
        mlist.add(R.drawable.fpcard);
        mlist.add(R.drawable.gggg);
        mlist.add(R.drawable.peng);
        mlist1 = new ArrayList<>();
        mlist1.add("123231");
        mlist1.add("123231");
        mlist1.add("123231");
        mlist1.add("123231");

        banner = findViewById(R.id.main_banner);

        banner.setImageLoader(new GlideImageLoader());   //设置图片加载器
        banner.setImages(mlist);//设置图片源
        banner.setBannerTitles(mlist1);//设置标题源
        banner.setDelayTime(1500);//设置轮播事件,单位毫秒
        banner.setBannerAnimation(Transformer.Stack);//设置轮播动画,动画种类很多,有兴趣的去试试吧,我在这里用的是默认

/**
 *  轮播图的点击事件
*/
        banner.setOnBannerListener(new OnBannerListener() {
            @Override
            public void OnBannerClick(int position) {
                Toast.makeText(MainActivity.this, "xiaoguo" + position, Toast.LENGTH_SHORT).show();
            }
        });
        banner.setIndicatorGravity(BannerConfig.CENTER);//设置指示器的位置

        banner.start();//开始轮播,一定要调用此方法。

    }

第六步 为了增强用户的体验:

  @Override
    protected void onResume() {
        super.onResume();
        banner.start();
    }

    @Override
    protected void onStop() {
        super.onStop();
        banner.stopAutoPlay();
    }

Banner的简单实现就说到这里,很简单,但是很强大,也很实用,可以满足一般的轮播需求。谢谢!

你可能感兴趣的:(andorid,android,框架,博客,轮播图,banner)