Android Glide以及其资源加载监听器的使用

1.什么是Glide
glide是一个快速、高效的开源媒体和图像加载的安卓框架,是集媒体解码、磁盘缓存、内存,以及资源管理于一体的简单易用的接口。包括一个灵活的接口,使开发人员可以插入到几乎任何网络堆栈。默认情况下,使用一个基于堆栈的自定义你的滑翔,还包括工具库插件谷歌的排球项目或方形的okhttp库代替。

这是github上的介绍,要是英语好的话,就忽略上面的中文吧,直接看其作者的解释
Android Glide以及其资源加载监听器的使用_第1张图片

2.使用方法
首先下载到本地
https://github.com/bumptech/glide
Android Glide以及其资源加载监听器的使用_第2张图片

第二步,复制到项目的根目录
Android Glide以及其资源加载监听器的使用_第3张图片

第三步,在build.gradle中里面添加 如下代码Android Glide以及其资源加载监听器的使用_第4张图片

代码在这里:

repositories {
    mavenCentral()
}
dependencies{
 compile 'com.github.bumptech.glide:glide:3.6.1'
    compile 'com.android.support:support-v4:24.2.1'
}

然后点击Sync Now,你就可以在你的项目里面使用了
这里给一个example,

xml布局文件中 添加一个ImageView:


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.gpwner.myapplication.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="使用Glide通过网络获取图片"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:id="@+id/textView" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:srcCompat="@mipmap/ic_launcher"
        android:layout_below="@+id/textView"
        android:layout_marginTop="56dp"
        android:id="@+id/imageView"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />
RelativeLayout>

Mainactivity.java:

package com.example.gpwner.myapplication;

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

import com.bumptech.glide.Glide;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ImageView imageView= (ImageView) findViewById(R.id.imageView);
        String internetUrl = "http://e.hiphotos.baidu.com/baike/c0%3Dbaike80%2C5%2C5%2C80%2C26/sign=413bf15c4f540923be646b2cf331ba6c/b21bb051f8198618faf0e0fb4ced2e738bd4e61e.jpg";
       //with参数Context对象,load参数URL,或者本地文件绝对路径,into控件
        Glide.with(this).load(internetUrl).into(imageView);
    }
}

下面就是从百度百科中的图片(http://baike.baidu.com/pic/%E6%94%AF%E4%BB%98%E5%AE%9D/496859/0/b21bb051f8198618faf0e0fb4ced2e738bd4e61e?fr=lemma&ct=single#aid=0&pic=b21bb051f8198618faf0e0fb4ced2e738bd4e61e)通过glide加载到本地的效果图:
Android Glide以及其资源加载监听器的使用_第5张图片

3.加载监听器RequestListener

Glide.with(this).load(internetUrl).listener(new RequestListener() {
            @Override
            public boolean onException(Exception e, String model, Target target, boolean isFirstResource) {
                Toast.makeText(getApplicationContext(),"资源加载异常",Toast.LENGTH_SHORT).show();
                return false;
            }
            //这个用于监听图片是否加载完成
            @Override
            public boolean onResourceReady(GlideDrawable resource, String model, Target target, boolean isFromMemoryCache, boolean isFirstResource) {
                Toast.makeText(getApplicationContext(),"图片加载完成",Toast.LENGTH_SHORT).show();
                return false;
            }
        }).into(imageView);

效果:

Android Glide以及其资源加载监听器的使用_第6张图片

你可能感兴趣的:(Android)