您的位置:首页 > 移动开发 > Android开发

Android图片加载框架,Glide的简单用法

2017-05-03 15:03 309 查看
Glide是一款由Bump Technologies开发的图片加载框架,使我们可以在Android平台上以极度简单的方式加载和展示图片。要想使用Glide,必须将这个库引入我们的项目中,对于Android Studio用户,要导入一下依赖:

compile
'com.github.bumptech.glide:glide:3.7.0'


如果你还在使用Eclipse,那就去下载Glide的jar包吧,下载好后导入。

另外,在Glide中需要用到网络功能,所以必须在AndroidManifest.xml中加入网络请求的权限

<uses-permission
android:name="android.permission.INTERNET"

/>


-----加载图片-----

现在我们就尝试一下用Glide加载图片吧。比如这是一张完美景色图片地址:

http://cn.bing.com/az/hprichbg/rb/Dongdaemun_ZH-CN10736487148_1920x1080.jpg

那么首先,我们打开项目,在布局文件中假如一个Button按钮,和一个ImageView,如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:singleLine="true"
android:text="点击加载图片" />

<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp" />
</LinearLayout>


为了让用户在点击按钮时,能够加载相应的图片展示在ImageView上,所以我们需要在Activity中进行操作,如下:

package xixinxin.bawie.com.item3;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

import com.bumptech.glide.Glide;

public class MainActivity extends AppCompatActivity {

private Button button;
private ImageView image;
private String uri="http://cn.bing.com/az/hprichbg/rb/Dongdaemun_ZH-CN10736487148_1920x1080.jpg";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();//找控件
}

private void initView() {
image = (ImageView) findViewById(R.id.image);
button = (Button) findViewById(R.id.button);
//对Button按钮进行监听,在监听中执行相应的操作
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Glide.with(MainActivity.this).load(uri).into(image);
}
});
}
}

从上述可以看出,Glide加载图片最主要的其实就一行代码

Glide.with(MainActivity.this).load(uri).into(image);

千万不要小看这一行代码,就这一行代码可以做很多的事情,包括加载网络上的图片,加载手机本地图片、加载应用资源中的图片等等。

下面是这行代码的详细解释:

首先,调用Glide.with()方法用来创建一个加载图片的实例。with()方法可以接收Context、Activity、Fragment等类型的参数,言外之意,就是我们选择的范围非常广,不管是Activity中,还是Fragment中,调用with()方法,都可以直接传this。如果调用的地方既不在Activity中也不在Fragment中,我们可以通过ApplicationContext,传入方法当中,注意with()方法中传入的实例会决定Glide加载图片的生命周期,如果传入的是Activity或者Fragment的实例,那么当这个Activity或Fragment被销毁的时候,图片加载也会停止。如果传入的是ApplicationContext,那么只有当应用程序被杀掉的时候,图片加载才会停止。

------load()方法

这个方法用于指定待加载的图片资源,Glide支持加载各种各样的图片资源,包括网络图片、本地图片、应用资源、二进制流、URI对象等等。因此load()方法也有很多个方法重载,除了我们刚才使用的加载一个字符串网址之外,还可以这样使用load()方法:

//加载本地图片
File mfile = new File(getExternalCacheDir() + "/image.jpg");
Glide.with(MainActivity.this).load(mfile).into(image);

//加载应用资源
int recourse = R.mipmap.ic_launcher;
Glide.with(MainActivity.this).load(recourse).into(image);

------into()方法

这个方法就很简单了,我们希望让图片显示在哪个imageView上,把这个ImageView的实例传进去就可以了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: