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

    xiaoxiao2021-11-28  66

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

    简介3.x

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

    转载请注明原文地址: https://ju.6miu.com/read-678543.html

    最新回复(0)