第三方开源库:Glide-图片加载框架

参考:Android实践 – Android开源框架Glide的使用

简介3.x

这里介绍的是3.7,现在已经是4.x,改了很多地方。
Glide是一个快速高效的多媒体管理和图像加载的框架,封装了Android平台的多媒体的解码,内存和硬盘缓存等,Glide
支持解码、显示视频、图像和GIFsGlide是基于定制的HttpUrlConnection,下载使用

  • jar
    可以在Github下载最新的jar包 下载地址
  • Gradle
    compile 'com.github.bumptech.glide:glide:3.7.0'

demo用到的权限

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

使用

步骤:

Glide.with(context).load(url).into(iv)

效果图:

1 加载资源图片

Glide.with(context).load(R.mipmap.ic_launcher).into(iv);

2 加载文件图片

String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Screenshots/a.png";
File file = new File(path);
Glide.with(context).load(file).into(iv);

//或者
Glide.with(context).load("file://" + path).into(iv);

3 加载网络图片

Glide.with(context).load(url).into(iv);

4 暂位图

Glide.with(context).load(url2).placeholder(R.mipmap.ic_launcher).error(R.mipmap.ic_launcher).into(iv);

5 动画

Glide.with(context).load(url2).crossFade(3000).into(iv);

6 裁剪图片

int pic_width = (int) getResources().getDimension(R.dimen.pic_width);
int pic_height = (int) getResources().getDimension(R.dimen.pic_height);
//直接填数字是像素,从dimens中取值是dp
//fitCenter()  centerCrop()
Glide.with(context).load(url2).override(pic_width, pic_height).centerCrop().into(iv);

7 加载gif

Glide.with(context).load(url3).asGif().into(iv);

8 加载gif作为静态图像

Glide.with(context).load(url3).asBitmap().into(iv);

9 加载本地视频

String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/a.mp4";
Uri uri = Uri.fromFile(new File(path));
Glide.with(context).load(uri).into(iv);

10不使用内存缓存

Glide.with(context).load(url2).skipMemoryCache(true).into(iv);

11不使用硬盘缓存

Glide.with(context).load(url2).diskCacheStrategy(DiskCacheStrategy.NONE).into(iv);

12优先级:高

Glide.with(context).load(url2).priority(Priority.HIGH).into(iv);

13优先级:中

Glide.with(context).load(url2).priority(Priority.NORMAL).into(iv);

14优先级:低

Glide.with(context).load(url2).priority(Priority.LOW).into(iv);

15优先级:立即

Glide.with(context).load(url2).priority(Priority.IMMEDIATE).into(iv);

Demo

GlideDemo01

Glide4.x

Demo: https://git.oschina.net/libraryDemo/Glide4Demo
这里写图片描述

Gradle

project module:

allprojects {
    repositories {
        jcenter()
        mavenCentral()
        maven { url 'https://maven.google.com' }
    }
}

app module

dependencies {
  compile 'com.github.bumptech.glide:glide:4.1.1'
  annotationProcessor 'com.github.bumptech.glide:compiler:4.1.1'
}

简单使用Glide’s generated API

package com.cqc.glide4demo.util;
import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.module.AppGlideModule;

/**
 * 一定要点击小锤子Make Project,才会有GlidApp
 */
@GlideModule
public  final class MyAppGlideModule extends AppGlideModule {
}
GlideApp.with(context)
        .load("http://mpic.tiankong.com/397/0e1/3970e127ca6491f17ad355feb2ff79d6/640.jpg")
        .placeholder(R.mipmap.load)
        .error(R.mipmap.error)
        .fitCenter()
        .into(iv);
fitCenter()
centerCrop()

placeholder()和error()

placeholder()和error()可以使用ColorDrawable

GlideApp.with(context)
        .load(url)
        .placeholder(new ColorDrawable(Color.RED))
        .error(new ColorDrawable(Color.GREEN))
        .into(iv);

fallback()

url为null 或”“时,采用fallback()

    GlideApp.with(context)
            .load(null)
            .fallback(R.mipmap.error)
            .into(iv);

centerCropTransform

需引入

import static com.bumptech.glide.request.RequestOptions.centerCropTransform;
GlideApp.with(context)
        .load(URL)
        .apply(centerCropTransform())
        .into(iv);

RequestOptions

RequestOptions options = new RequestOptions();
options.centerCrop();
GlideApp.with(context)
        .load(url)
        .apply(options)
        .into(iv);

withCrossFade

import static com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions.withCrossFade;
GlideApp.with(context)
        .load(url)
        .transition(withCrossFade())
        .into(iv);

其他

第三方开源库:Picasso-图片加载框架
第三方开源库:Glide-图片加载框架
第三方开源库:imageLoader的使用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值