Glide-入门(一)

先用起来

.gradle

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

AndroidManifest.xml增加权限

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

xml

<RelativeLayout 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:background="#000"
                tools:context=".MainActivity">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:src="@mipmap/ic_launcher"/>


</RelativeLayout>

java

ImageView imageView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        imageView = (ImageView) findViewById(R.id.imageView);

        Glide.with(this).load("https://ss0.bdstatic" +
                ".com/5aV1bjqh_Q23odCf/static/superman/img/logo/logo_white.png").into(imageView);
    }

显示效果

这里写图片描述

分析

关键代码只有1行

 Glide.with(this).load(url).into(imageView);

.with()

首先,调用Glide.with()方法用于创建一个加载图片的实例,with()方法可以接收Context、Activity或者Fragment类型的参数。也就是说我们选择的范围非常广,不管是在Activity还是Fragment中调用with()方法,都可以直接传this

那如果调用的地方既不在Activity中也不在Fragment中呢?也没关系,我们可以获取当前应用程序的ApplicationContext,传入到with()方法当中

注意with()方法中传入的实例会决定Glide加载图片的生命周期,如果传入的是Activity或者Fragment的实例,那么当这个Activity或Fragment被销毁的时候,图片加载也会停止

如果传入的是ApplicationContext,那么只有当应用程序被杀掉的时候,图片加载才会停止

load()

load(),这个方法用于指定待加载的图片资源

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

加载本地图片

File file = new File(Environment.getExternalStorageDirectory(), "test.png");
Glide.with(this).load(file).into(imageView);

注意

1、需要在AndroidMenifest.xml中增加读取文件权限

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

2、在手机中打开读写手机存储权限

因为手机是安卓7.0,虽然代码中增加了权限,但默认是询问状态
这里写图片描述

这里写图片描述

加载应用资源

Glide.with(this).load(R.mipmap.ic_launcher).into(imageView);

以下两种方式因为目前没有用到,我自己没有测试

// 加载二进制流
byte[] image = getImageBytes();
Glide.with(this).load(image).into(imageView);

// 加载Uri对象
Uri imageUri = getImageUri();
Glide.with(this).load(imageUri).into(imageView);

into()
into()方法,我们希望让图片显示在哪个ImageView上,把这个ImageView的实例传进去就可以了。当然,into()方法不仅仅是只能接收ImageView类型的参数,还支持很多更丰富的用法,不过那个属于高级技巧,后面文章中再写

那么回顾一下Glide最基本的使用方式,就是先with(),再load(),最后into()。熟记这三步,你就已经入门Glide了


关于Glide这些文章,大部分我只是搬运工,然后加上了自己掉过的坑,供小白参考。
感谢郭大侠写出了这么简单明了的博客,φ(゜▽゜*)♪
下面是郭大侠的原博文地址

http://blog.csdn.net/guolin_blog/article/details/53759439

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值