前言

关于轮播图 我个人是比较喜欢 闲来无事的时候 可以整理自己的照片 做一个demo 看看动态的效果
挺不错的!
每个App也基本都有一些广告位置 只要打开这个页面就会无限轮播广告图片
看多了我们也会记得这个效果 那么他是怎么实现的呢?今天我就学习了一下 写了一个demo来练练手

先看效果图吧

导入依赖的包

版本可自行调整 我用的是1.4.10 里面的动画Animation样式Style更多一些

//轮播依赖implementation'com.youth.banner:banner:1.4.10'//Glide框架implementation "com.github.bumptech.glide:glide:4.6.1"
权限问题
如果你从SD卡读取图片 别忘了加读写权限下面有从网络加载图片的方法加了相关网络权限 //网络权限 //读取SD卡
布局资源
<?xml version="1.0" encoding="utf-8"?>    
MainActivity的代码

这个demo加载的图片是本地的

public class MainActivity extends AppCompatActivity implements OnBannerListener {    private Banner mBanner;    private MyImageLoader mMyImageLoader;    private ArrayList imagePath;    private ArrayList imageTitle;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initData();        initView();    }    private void initData() {        imagePath = new ArrayList<>();        imageTitle = new ArrayList<>();        imagePath.add(R.mipmap.seabird);        imagePath.add(R.mipmap.seabird);        imagePath.add(R.mipmap.seabird);        imageTitle.add("我是海鸟一号");        imageTitle.add("我是海鸟二号");        imageTitle.add("我是海鸟三号");    }    private void initView() {        mMyImageLoader = new MyImageLoader();        mBanner = findViewById(R.id.banner);        //设置样式,里面有很多种样式可以自己都看看效果        mBanner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE);        //设置图片加载器        mBanner.setImageLoader(mMyImageLoader);        //设置轮播的动画效果,里面有很多种特效,可以都看看效果。        mBanner.setBannerAnimation(Transformer.ZoomOutSlide);        //轮播图片的文字        mBanner.setBannerTitles(imageTitle);        //设置轮播间隔时间        mBanner.setDelayTime(3000);        //设置是否为自动轮播,默认是true        mBanner.isAutoPlay(true);        //设置指示器的位置,小点点,居中显示        mBanner.setIndicatorGravity(BannerConfig.CENTER);        //设置图片加载地址        mBanner.setImages(imagePath)                //轮播图的监听                .setOnBannerListener(this)                //开始调用的方法,启动轮播图。                .start();    }    /**     * 轮播图的监听     *     * @param position     */    @Override    public void OnBannerClick(int position) {        Toast.makeText(this, "你点了第" + (position + 1) + "张轮播图", Toast.LENGTH_SHORT).show();    }    /**     * 图片加载类     */    private class MyImageLoader extends ImageLoader {        @Override        public void displayImage(Context context, Object path, ImageView imageView) {            Glide.with(context.getApplicationContext())                    .load(path)                    .into(imageView);        }    }}
加载网络图片方法

如果你的demo一片空白 没有图片 请注意敲黑板!!,敲黑板!!,敲黑板!!极大可能是没有网络权限
布局就不上传了 主要代码如下

public class MainActivity extends AppCompatActivity implements OnBannerListener {    private Banner banner;    private ArrayList list_path;    private ArrayList list_title;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();        initData();    }    private void initData() {        list_path.add("https://gss0.baidu.com/94o3dSag_xI4khGko9WTAnF6hhy/zhidao/wh%3D600%2C800/        sign=e9873bfca944ad342eea8f81e09220cc/a8ec8a13632762d08fa73daea8ec08fa513dc602.jpg");             list_path.add("https://gss0.baidu.com/94o3dSag_xI4khGko9WTAnF6hhy/zhidao/wh%3D600%2C800/     sign=e9873bfca944ad342eea8f81e09220cc/a8ec8a13632762d08fa73daea8ec08fa513dc602.jpg");         list_path.add("https://gss0.baidu.com/94o3dSag_xI4khGko9WTAnF6hhy/zhidao/wh%3D600%2C800/     sign=e9873bfca944ad342eea8f81e09220cc/a8ec8a13632762d08fa73daea8ec08fa513dc602.jpg");             list_path.add("https://gss0.baidu.com/94o3dSag_xI4khGko9WTAnF6hhy/zhidao/wh%3D600%2C800/          sign=e9873bfca944ad342eea8f81e09220cc/a8ec8a13632762d08fa73daea8ec08fa513dc602.jpg");                  list_title.add("我爱NBA");        list_title.add("我爱科比布莱恩特");        list_title.add("我爱NBA");        list_title.add("我爱科比布莱恩特");    }    private void initView() {        banner = findViewById(R.id.banner);        list_path = new ArrayList<>();        list_title = new ArrayList<>();        banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE);        banner.setImageLoader(new MyLoader());        banner.setBannerAnimation(Transformer.Default);        banner.setBannerTitles(list_title);        banner.setDelayTime(3000);        banner.isAutoPlay(true);        banner.setIndicatorGravity(BannerConfig.CENTER);        banner.setImages(list_path)                .setOnBannerListener(this)                .start();    }    /**     * 轮播监听     *     * @param position     */    @Override    public void OnBannerClick(int position) {        Toast.makeText(this, "你点了第" + (position + 1) + "张轮播图", Toast.LENGTH_SHORT).show();    }    /**     * 网络加载图片     * 使用了Glide图片加载框架     */    private class MyLoader extends ImageLoader {        @Override        public void displayImage(Context context, Object path, ImageView imageView) {            Glide.with(context.getApplicationContext())                    .load((String) path)                    .into(imageView);        }    }}
效果图

与君共勉

我要一步一步往上爬
在最高点乘着叶片往前飞
任风吹干流过的泪和汗
我要一步一步往上爬
等待阳光静静看着它的脸
小小的天有大大的梦想
我有属于我的天
任风吹干流过的泪和汗
总有一天我有属于我的天

更多相关文章

  1. 实现android上传多张图片和文字给php后台
  2. Android使用Glide加载带图片列表时,快速上拉加载更多会闪烁
  3. Android简易实战教程--第二十八话《加载大图片》
  4. android 将res内图片文件通过Bitmap对象存到手机本地中
  5. Android仿百度加载动画
  6. android DexClassLoader动态加载技术详解
  7. android 代码设置、打开wifi热点及热点的连接
  8. android 中.9图片的用法 详解
  9. Unity发布IPA并真机测试的设置与连接

随机推荐

  1. android群英传笔记--第四章--ListView使
  2. Android第二天
  3. 手机开发资料 > Android(安卓)(不错的入
  4. Android(安卓)程序主菜单 布局
  5. 多款Android播放器源码集锦
  6. Android(安卓)GridView属性
  7. Android(安卓)SDK源码下载
  8. Android(安卓)SDK版本与API Level对应列
  9. 系统自带的主题与样式(theme and style)
  10. Android常见inputType