Android开发之图片加载框架Glide
2017-05-19 11:45
381 查看
Glide是一款由Bump Technologies开发的图片加载框架,使得我们可以在Android平台上以极度简单的方式加载和展示图片。
目前,Glide最新的稳定版本是3.7.0,虽然3.8.0已经推出预览版了,但是暂时问题还比较多。因此,我们这个系列的博客都会使用Glide 3.7.0版本来进行讲解,这个版本的Glide相当成熟和稳定。
要想使用Glide,首先需要将这个库引入到我们的项目当中。
1,新建一个GlideTest项目,然后在app/build.gradle文件当中添加如下依赖:
2,在清单文件中,声明网络权限:
3,准备一张大图的地址如:
4,布局文件:
5,在MainActivity.java中使用:
首先,调用Glide.with()方法用于创建一个加载图片的实例。with()方法可以接收Context、Activity或者Fragment类型的参数。也就是说我们选择的范围非常广,不管是在Activity还是Fragment中调用with()方法,都可以直接传this。那如果调用的地方既不在Activity中也不在Fragment中呢?也没关系,我们可以获取当前应用程序的ApplicationContext,传入到with()方法当中。注意with()方法中传入的实例会决定Glide加载图片的生命周期,如果传入的是Activity或者Fragment的实例,那么当这个Activity或Fragment被销毁的时候,图片加载也会停止。如果传入的是ApplicationContext,那么只有当应用程序被杀掉的时候,图片加载才会停止。
接下来看一下load()方法,这个方法用于指定待加载的图片资源。Glide支持加载各种各样的图片资源,包括网络图片、本地图片、应用资源、二进制流、Uri对象等等。因此load()方法也有很多个方法重载,除了我们刚才使用的加载一个字符串网址之外,你还可以这样使用load()方法:
6,扩展:占位图,显示错误图片,动态图,静态图等
目前,Glide最新的稳定版本是3.7.0,虽然3.8.0已经推出预览版了,但是暂时问题还比较多。因此,我们这个系列的博客都会使用Glide 3.7.0版本来进行讲解,这个版本的Glide相当成熟和稳定。
要想使用Glide,首先需要将这个库引入到我们的项目当中。
1,新建一个GlideTest项目,然后在app/build.gradle文件当中添加如下依赖:
compile 'com.github.bumptech.glide:glide:3.7.0'
2,在清单文件中,声明网络权限:
<uses-permission android:name="android.permission.INTERNET" />
3,准备一张大图的地址如:
http://www.bz55.com/uploads/allimg/110901/1121101495-7.jpg
4,布局文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.gyq.glidetest.MainActivity"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="加载图片" android:onClick="loadImage" /> <ImageView android:id="@+id/image_view" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
5,在MainActivity.java中使用:
package com.gyq.glidetest; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.ImageView; import com.bumptech.glide.Glide; public class MainActivity extends AppCompatActivity { private ImageView imageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageView = (ImageView)findViewById(R.id.image_view); } public void loadImage(View view) { String url = "http://www.bz55.com/uploads/allimg/110901/1121101495-7.jpg"; Glide.with(this).load(url).into(imageView); //一行代码搞定图片加载 } }
首先,调用Glide.with()方法用于创建一个加载图片的实例。with()方法可以接收Context、Activity或者Fragment类型的参数。也就是说我们选择的范围非常广,不管是在Activity还是Fragment中调用with()方法,都可以直接传this。那如果调用的地方既不在Activity中也不在Fragment中呢?也没关系,我们可以获取当前应用程序的ApplicationContext,传入到with()方法当中。注意with()方法中传入的实例会决定Glide加载图片的生命周期,如果传入的是Activity或者Fragment的实例,那么当这个Activity或Fragment被销毁的时候,图片加载也会停止。如果传入的是ApplicationContext,那么只有当应用程序被杀掉的时候,图片加载才会停止。
接下来看一下load()方法,这个方法用于指定待加载的图片资源。Glide支持加载各种各样的图片资源,包括网络图片、本地图片、应用资源、二进制流、Uri对象等等。因此load()方法也有很多个方法重载,除了我们刚才使用的加载一个字符串网址之外,你还可以这样使用load()方法:
// 加载本地图片 File file = new File(getExternalCacheDir() + "/image.jpg"); Glide.with(this).load(file).into(imageView); // 加载应用资源 int resource = R.drawable.image; Glide.with(this).load(resource).into(imageView); // 加载二进制流 byte[] image = getImageBytes(); Glide.with(this).load(image).into(imageView); // 加载Uri对象 Uri imageUri = getImageUri(); Glide.with(this).load(imageUri).into(imageView);
6,扩展:占位图,显示错误图片,动态图,静态图等
Glide.with(this) .load(url) //.asBitmap() //加载静态图,如果原图是动态图,则加载第一帧的静态图 .asGif() //显示加载的图片为动态图,源图不是,就会出现error图 .placeholder(R.drawable.loading) //在加载时,先给imageview一个默认图 .error(R.drawable.error) //网络断开,或者这个activity退出,都会导致加载失败 .diskCacheStrategy(DiskCacheStrategy.NONE) //清除缓存 .override(100, 100) //给图片指定固定大小 .into(imageView);
相关文章推荐
- android开发glide图片加载框架使用示例
- Android开发:使用Glide动态加载圆形图片和圆角图片--图片开发框架
- Android Glide图片加载框架图片变色变绿解决方法
- Android图片加载框架比较----Glide,Picasso,Fresco
- Android框架:glide强大的图片加载库
- Android图片加载缓存框架Glide
- Android Glide图片加载框架详解
- Android开发:使用Glide动态加载圆形图片和圆角图片
- 聊聊Android优秀的图片加载缓存的开源框架?UIL、Glide、Picasso
- 图片加载及缓存框架Glide在安卓开发中的应用
- Android图片加载框架Glide使用总结
- Android图片加载框架:ImageLoader,Volley,Picasso,Glide,Fresco
- android glide 图片加载框架使用
- android图片加载框架比较----Glide,Picasso,Fresco
- Android Glide Google 推荐加载图片框架(加载图片详解篇)
- Android Glide Google 推荐加载图片框架(加载图片详解篇)
- Android开发:使用Glide动态加载圆形图片和圆角图片
- Android图片加载与缓存开源框架:Android Glide
- Android图片加载缓存框架Glide
- Android Glide图片加载框架图片变色变绿解决方法