轮播图框架
来源:互联网 发布:windowsrt软件下载 编辑:程序博客网 时间:2024/04/29 17:54
Android广告图片轮播控件,支持无限循环和5种主题,可以灵活设置轮播样式、时间、位置、图片加载框架等!
传送门(最新文档信息请跳转到github查看)
https://github.com/youth5201314/banner
现在的绝大数app都有banner界面,实现循环播放多个广告图片和手动滑动循环等功能。因为ViewPager并不支持循环翻页,
所以要实现循环还得需要自己去动手,我就把项目中的控件剔了出来,希望大家觉得有用。目前框架可以进行不同样式、不同动画设置,
以及完善的api方法能满足大部分的需求了。
效果图
垂直显示
水平显示
联系方式
- 如果遇到问题和建议欢迎在给我发送邮件或者加入qq群,希望让这个工程越来越完善。
常量
动画常量类(setBannerAnimation方法调用)
方法
Attributes属性(banner布局文件中调用)
[ 点击查看 ViewPager的PageTransformer用法 ]
使用步骤
Step 1.依赖banner
Gradle
dependencies{ compile 'com.youth.banner:banner:1.4.8' //最新版本 or compile 'com.youth.banner:banner:1.3.3' //旧版本,旧版本用法下面有跳转链接}
或者引用本地lib
compile project(':banner')
Step 2.添加权限到你的 AndroidManifest.xml
<!-- if you want to load images from the internet --><uses-permission android:name="android.permission.INTERNET" /> <!-- if you want to load images from a file OR from the internet --><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Step 3.在布局文件中添加Banner,可以设置自定义属性
!!!此步骤可以省略,直接在Activity或者Fragment中new Banner();
<com.youth.banner.Banner xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/banner" android:layout_width="match_parent" android:layout_height="高度自己设置" />
Step 4.重写图片加载器
public class GlideImageLoader extends ImageLoader { @Override public void displayImage(Context context, Object path, ImageView imageView) { /** 常用的图片加载库: Universal Image Loader:一个强大的图片加载库,包含各种各样的配置,最老牌,使用也最广泛。 Picasso: Square出品,必属精品。和OkHttp搭配起来更配呦! Volley ImageLoader:Google官方出品,可惜不能加载本地图片~ Fresco:Facebook出的,天生骄傲!不是一般的强大。 Glide:Google推荐的图片加载库,专注于流畅的滚动。 */ //Glide 加载图片简单用法 Glide.with(context).load(path).into(imageView); //Picasso 加载图片简单用法 Picasso.with(context).load(path).into(imageView) //用fresco加载图片简单用法 Uri uri = Uri.parse((String) path); imageView.setImageURI(uri); } //提供createImageView 方法,如果不用可以不重写这个方法,方便fresco自定义ImageView @Override public ImageView createImageView(Context context) { SimpleDraweeView simpleDraweeView=new SimpleDraweeView(context); return simpleDraweeView; }}
Step 5.在Activity或者Fragment中配置Banner
--------------------------简单使用-------------------------------@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Banner banner = (Banner) findViewById(R.id.banner); //设置图片加载器 banner.setImageLoader(new GlideImageLoader()); //设置图片集合 banner.setImages(images); //banner设置方法全部调用完毕时最后调用 banner.start();}--------------------------详细使用-------------------------------@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Banner banner = (Banner) findViewById(R.id.banner); //设置banner样式 banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE); //设置图片加载器 banner.setImageLoader(new GlideImageLoader()); //设置图片集合 banner.setImages(images); //设置banner动画效果 banner.setBannerAnimation(Transformer.DepthPage); //设置标题集合(当banner样式有显示title时) banner.setBannerTitles(Arrays.asList(titles)); //设置自动轮播,默认为true banner.isAutoPlay(true); //设置轮播时间 banner.setDelayTime(1500); //设置指示器位置(当banner模式中有指示器时) banner.setIndicatorGravity(BannerConfig.CENTER); //banner设置方法全部调用完毕时最后调用 banner.start();}-----------------当然如果你想偷下懒也可以这么用--------------------@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Banner banner = (Banner) findViewById(R.id.banner); banner.setImages(images).setImageLoader(new GlideImageLoader()).start();}
混淆代码
# glide 的混淆代码-keep public class * implements com.bumptech.glide.module.GlideModule-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** { **[] $VALUES; public *;}# banner 的混淆代码-keep class com.youth.banner.** { *; }
[历史版本资源地址]
[1.3.3以前旧版本文档地址]
常见问题
问:eclipse怎么使用banner?
- 答:
在历史版本列表中下载你想要版本的aar包提取最新资源/也可以自己把工程转成eclipse的
eclipse的集成demo群文件里有共享!
- 答:
问:怎么显示的一片空白?
- 答:
1、没有添加网络权限就抱怨有问题,然后就拒绝使用,我能说什么?
2、检查图片链接是否能打开。
- 答:
问:怎么加载其他图片资源(资源文件、文件、Uri、assets、raw、ContentProvider、sd卡资源)?
答:列如!如果你使用的是glide,那么可以如下操作,其他图片图片加载框架可能有不同
//资源文件 Integer[] images={R.mipmap.a,R.mipmap.b,R.mipmap.c}; //Uri Uri 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"}; //ContentProvider String[] images={"content://media/external/images/media/139469"}; //assets String[] images={"file:///android_asset/f003.gif"}; //sd卡资源 String[] images={"file://"+ Environment.getExternalStorageDirectory().getPath()+"/test.jpg"}; banner.setImages(images);//这里接收数组和集合都行
开发分享
© 著作权归作者所有
举报文章
关注鸡蛋掉了
写了 2961 字,被 30 人关注,获得了 95 个喜欢
我的个人博客:https://youth5201314.github.io/
0 0
- 轮播图框架
- 轮播图框架
- js轮播图框架结构
- 简单实用的轮播图框架(导入包以github最新为准)
- iOS回顾笔记(05) -- 手把手教你封装一个广告轮播图框架
- iOS回顾笔记(05) -- 手把手教你封装一个广告轮播图框架
- iOS回顾笔记(05) -- 手把手教你封装一个广告轮播图框架
- iOS回顾笔记(05) -- 手把手教你封装一个广告轮播图框架
- iOS回顾笔记(05) -- 手把手教你封装一个广告轮播图框架
- iOS回顾笔记(05) -- 手把手教你封装一个广告轮播图框架
- UI 一一 手把手教你封装一个广告轮播图框架
- 分享个轮播图框架
- 拓扑图框架Jtopo
- android长图框架
- 甘特图框架介绍
- Java I/O系统----------- 类图框架
- 免费的Flex拓扑图框架iolive
- myFocus焦点图框架使用心得
- java编程思想读书笔记(三)
- 关于人就是不断学习,才能称之为人
- 结束进程方法
- JS获取当前网址信息
- 关于远程推送步骤
- 轮播图框架
- 今日头条面试算法题
- 字节 VS 字符串长度 VS 字符个数
- IP 类别
- Ubuntu16.04下安装OpenCV3.2.0(转)
- Spring配置Quartz简单实现
- MicroMsg.SDK.WXMediaMessage: checkArgs fail, thumbData is invalid
- 什么是dlna的MS, MR, CP
- 如何定位Android NDK开发中遇到的错误