Android轮播图简单实现

1. 添加依赖项

implementation 'com.youth.banner:banner:1.4.10'implementation 'com.github.bumptech.glide:glide:4.9.0'annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'

2. 添加权限到 AndroidManifest.xml

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

3. 布局文件

使用ConstraintLayout可以很方便的设置内部控件的长宽比例,感兴趣的可以了解一下

<android.support.constraint.ConstraintLayout    android:layout_width="match_parent"    android:layout_height="match_parent">    <com.youth.banner.Banner         android:id="@+id/banner_home"         android:layout_width="0dp"         android:layout_height="0dp"         app:layout_constraintDimensionRatio="16:7"         app:layout_constraintLeft_toLeftOf="parent"         app:layout_constraintRight_toRightOf="parent" />android.support.constraint.ConstraintLayout>

4. Activity

protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    Banner banner=findViewById(R.id.banner_home);    //创建图片集合    List<String>images = new ArrayList<>();    images.add("我是图片外链");    images.add("我是图片外链");    images.add("我是图片外链");    banner.setImages(images)//设置图集          .setDelayTime(3000)//轮播间隔时间          .setImageLoader(new GlideImageLoader())//设置图片加载器          .start();}//图片加载器public class GlideImageLoader extends ImageLoader {    @Override    public void displayImage(Context context, Object path, ImageView imageView) {        Glide.with(context).load(path).into(imageView);    }}

------更多详细设置------

//设置banner样式banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE);//设置图片加载器banner.setImageLoader(new GlideImageLoader());//设置图片集合banner.setImages(images);//设置banner动画效果banner.setBannerAnimation(Transformer.DepthPage);//设置标题集合(当banner样式有显示title时)banner.setBannerTitles(titles);//设置自动轮播,默认为truebanner.isAutoPlay(true);//设置轮播时间banner.setDelayTime(1500);//设置指示器位置(当banner模式中有指示器时)banner.setIndicatorGravity(BannerConfig.CENTER);//banner设置方法全部调用完毕时最后调用banner.start();

其他图片资源加载

//资源文件Integer[] images={R.mipmap.a,R.mipmap.b,R.mipmap.c};//UriUri uri = resourceIdToUri(context, R.mipmap.ic_launcher);Uri[] images={uri};//文件对象File[] images={"文件对象","文件对象"};//raw 两种方式String[] images={"Android.resource://com.frank.glide/raw/raw_1"};String[] images={"android.resource://com.frank.glide/raw/"+R.raw.raw_1"};//ContentProviderString[] images={"content://media/external/images/media/139469"};//assetsString[] images={"file:///android_asset/f003.gif"};//sd卡资源String[] images={"file://"+ Environment.getExternalStorageDirectory().getPath()+"/test.jpg"};banner.setImages(images);//这里接收集合

常量

方法 常量名 描述
setBannerStyle BannerConfig.NOT_INDICATOR 不显示指示器和标题
setBannerStyle BannerConfig.CIRCLE_INDICATOR 显示圆形指示器
setBannerStyle BannerConfig.NUM_INDICATOR 显示数字指示器
setBannerStyle BannerConfig.NUM_INDICATOR_TITLE 显示数字指示器和标题
setBannerStyle BannerConfig.CIRCLE_INDICATOR_TITLE 显示圆形指示器和标题(垂直显示)
setBannerStyle BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE 显示圆形指示器和标题(水平显示)
setIndicatorGravity BannerConfig.LEFT 指示器居左
setIndicatorGravity BannerConfig.CENTER 指示器居中
setIndicatorGravity BannerConfig.RIGHT 指示器居右

更多相关文章

  1. android 读取raw下的视频文件
  2. Android 实现九宫格、点击图片放大全屏浏览等
  3. android之下载文件
  4. android处理资源文件复制到database区域java
  5. android 获取视频文件第一针 作为封面
  6. Android ImageView图片浏览器(ImageView加载sd卡图片资源)的内存溢
  7. Android 打开这个 apk文件
  8. android实现点击图片全屏展示效果
  9. Android 文件读取操作

随机推荐

  1. Android拨号键盘增加魔力爱心数字
  2. Android(安卓)时间戳的转换
  3. androidpn No response from server
  4. App优化之提升你的App启动速度之实例挑战
  5. android 使用getDrawable和BitmapFactory
  6. android studio导入项目报错Plugin with
  7. Android(安卓)AIDl来实现进程间通讯
  8. android开发EditText输入时弹出数字输入
  9. perl 解析 android 字符串资源的 %1$s 匹
  10. 浅析Android中的visibility属性