Glide
查看Glide的文档 | 简体中文文档 | 向Glide报告问题
Glide是一个快速高效的Android开源媒体管理和图像加载框架,它将媒体解码,内存和磁盘缓存以及资源池包装成一个简单易用的界面。
Glide支持获取、解码和显示视频静止图像,图像和动画GIF。 Glide包含一个灵活的API允许开发人员插入几乎任何网络堆栈。默认情况下,Glide使用基于自定义的 HttpUrlConnection 而且还包括实用程序库,可以插入到Google的Volley项目或Square的OkHttp库中。
Glide的主要焦点是尽可能平滑和快速地滚动任何类型的图像列表,但Glide是几乎在任何情况下您都需要获取,调整大小和显示远程图像。
下载
有关详细说明和要求,请参阅Glide的下载和设置文档页面。
您可以从GitHub的发布页下载一个jar包。
或者使用Gradle:
repositories { mavenCentral() google() } dependencies { implementation 'com.github.bumptech.glide:glide:4.8.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0' }
或Maven:
<dependency> <groupId>com.github.bumptech.glide</groupId> <artifactId>glide</artifactId> <version>4.8.0</version> </dependency> <dependency> <groupId>com.github.bumptech.glide</groupId> <artifactId>compiler</artifactId> <version>4.8.0</version> <optional>true</optional> </dependency>
有关使用最新优势的信息,请参阅快照文档页面。
ProGuard
根据您的ProGuard(DexGuard)配置和用法,您可能需要在proguard.cfg中包含以下行(请参阅下载和设置文档页面了解更多详情):
-keep public class * implements com.bumptech.glide.module.GlideModule -keep public class * extends com.bumptech.glide.module.AppGlideModule -keep public enum com.bumptech.glide.load.ImageHeaderParser$** { **[] $VALUES; public *; } # for DexGuard only -keepresourcexmlelements manifest/application/meta-data@value=GlideModule
我如何使用Glide?
对于Glide v3,请参阅 wiki 。
Glide的生成的API 的简单用例如下所示:
// For a simple view: @Override public void onCreate(Bundle savedInstanceState) { ... ImageView imageView = (ImageView) findViewById(R.id.my_image_view); GlideApp.with(this).load("http://goo.gl/gEgYUd").into(imageView); } // For a simple image list: @Override public View getView(int position, View recycled, ViewGroup container) { final ImageView myImageView; if (recycled == null) { myImageView = (ImageView) inflater.inflate(R.layout.my_image_view, container, false); } else { myImageView = (ImageView) recycled; } String url = myUrls.get(position); GlideApp .with(myFragment) .load(url) .centerCrop() .placeholder(R.drawable.loading_spinner) .into(myImageView); return myImageView; }
状态
版本4现已发布并且稳定。更新目前至少每月发布一次,并提供新功能和错误修复。评论/错误/问题/拉请求总是欢迎!有关如何报告问题,请阅读 CONTRIBUTING.md 。
兼容性
- 最低Android SDK :Glide v4要求最低API级别为14。
- 编译Android SDK :Glide v4要求您针对API 26或更高版本进行编译。
如果您需要支持较旧版本的Android,请考虑继续使用 Glide v3 ,该API适用于API 10 ,但没有积极维护。
- OkHttp 3.x :有一个可选的依赖项,称为 okhttp3-integration ,参见文档页面。
- Volley :有一个可选的依赖项,称为 volley-integration ,请参阅文件页。 Round Pictures : CircleImageView/CircularImageView/RoundedImageView 已知有issues 与 TransitionDrawable (.crossFade() with .thumbnail() or .placeholder()) 和动画GIF,请使用BitmapTransformation ( .circleCrop()将在v4)或 .dontAnimate()这个问题。
- Huge Images(地图,连环漫画):Glide可以通过缩小图片来加载巨大图片,但不支持缩放和平移 ImageView ,因为它们需要特殊的资源优化(如平铺)在没有 OutOfMemoryError 的情况下工作
构建
使用Gradle构建Glide非常简单:
git clone https://github.com/bumptech/glide.git cd glide ./gradlew jar
注意:确保您的 Android SDK 安装了 Android支持库,并且您的 $ ANDROID_HOME 环境变量指向SDK或使用 sdk.dir = ... 行在根项目中添加 local.properties 文件。
示例
按照 Build 部分中的步骤设置项目,然后:
./gradlew :samples:flickr:run ./gradlew :samples:giphy:run ./gradlew :samples:svg:run ./gradlew :samples:contacturi:run
您也可以在发布页面上找到预编译的APK。
开发
按照 Build 部分中的步骤设置项目,然后根据需要编辑文件。 Android Studio 干净地导入Glide的源代码和测试,并且是推荐使用Glide的方式。
在Android Studio中打开项目:
- 转到文件菜单或欢迎屏幕
- 点击打开...
- 导航到Glide的根目录。
- 选择 setting.gradle
有关详情,请参阅贡献文档页。
获得帮助
要报告特定的问题或功能请求,请在Github上开启新的问题。对于问题,建议或其他任何信息,请 Glide的讨论组或加入我们的IRC频道:irc.freenode.net#glide-library 。
贡献
在提交pull请求之前,贡献者必须签署Google的个人贡献者许可协议。
感谢
- 磁盘缓存实施的 Android团队和杰克华顿 Glide的磁盘缓存基于。 对于 GIF解码器要点,
- 戴夫史密斯 Glide的GIF解码器基于。
- Chris Banes 为他的 gradle-mvn-push 脚本。 >
- Corey Hall ,介绍Glide的神奇标志。
- 每个贡献代码并报告问题的人!
作者
Sam Judd - 在GitHub上看@sjudd,在Twitter上看@samajudd
许可证
BSD,MIT和Apache 2.0的一部分。详细信息请参阅许可证文件。
声明
这不是Google的官方产品。