精华内容
下载资源
问答
  • android glide
    2021-06-08 03:16:43

    释放双眼,带上耳机,听听看~!

    今天,简单讲解android使用glide加载图片成圆形。

    这个很简单,因为之前需要在RecyclerView里加载圆形图片,所以在网上查找了资料,很简单就解决了。

    1、导入依赖

    implementation ‘com.github.bumptech.glide:glide:4.6.1’

    2、用Glide加载圆形图片

    Glide.with(context).load(list.get(position).getImgsrc())

    .apply(RequestOptions.bitmapTransform(new CircleCrop()))

    .into(holder.img);

    还可以加载圆角图片

    Glide.with(this)

    .load("http://img5.duitang.com/uploads/item/201506/07/20150607110911_kY5cP.jpeg")

    .apply(RequestOptions.bitmapTransform(new CircleCrop()))

    .into(circle);

    Glide.with(this)

    .load("http://img.jiuzheng.com/memberlogo/s/57/0a/570af0f48f1e0327178b468d.jpg")

    .apply(RequestOptions.bitmapTransform(new RoundedCorners(20)))//圆角半径

    .into(round1);

    Glide.with(this)

    .load("http://img.jiuzheng.com/memberlogo/s/57/0a/570af0f48f1e0327178b468d.jpg")

    .apply(RequestOptions.bitmapTransform(new RoundedCorners(60)))//圆角半径

    .into(round2);

    这样,我们用Glide 原生方法便实现了加载圆形、圆角图片的功能。关键代码在于:

    圆形图片

    .apply(RequestOptions.bitmapTransform(new CircleCrop()))

    2.圆角图片

    .apply(RequestOptions.bitmapTransform(new RoundedCorners(20)))//圆角半径

    Android Glide加载图片成圆形就讲完了。

    就这么简单。

    更多相关内容
  • 主要为大家详细介绍了Android Glide图片加载的具体实现方法,包括加载监听、加载动画,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • Android Glide

    千次阅读 2022-02-05 20:30:30
    Glide关键类 RequestManager: 具有生命周期,管理RequestTracker中的两个队列 RequestTracker:里面有两个队列,一个运行时队列和一个等待队列,当into()时放入请求; Glide生命周期来源 在Gilde.with(this)时...

    Glide关键类

    1. RequestManager: 具有生命周期,管理RequestTracker中的两个队列
    2. RequestTracker:里面有两个队列,一个运行时队列和一个等待队列,当into()时放入请求;

    Glide生命周期来源

    1. 在Gilde.with(this)时,先创建了一个无UI的framgmet;
    2. 再创建了一个RequestManager,将framgmet的生命周期Lifecycle传了进去
    3. RequestManager就有了生命周期;
    4. 再将RequestManager设置给framgmet;
    5. 当外面的Activity页面生命周期触发onPause时,会触发fragment的onPause
    6. 在RequestManager中的Lifecycle.onPause会暂停所有运行时的请求,把请求放入到等待队列中;
    7. 当onDestory时,会清空队列;

    Glide五级缓存

    1. 活动资源缓存(Active Resources)
    2. 内存缓存(Memory Cache)
    3. 资源类型缓存(Resource Disk Cache)
    4. 原始数据缓存 (Data Disk Cache)
    5. 网络缓存

    活动资源缓存(Active Resources)

    1. 属于内存缓存
    2. 正在使用的图片(能看见的)
    3. 使用的弱引用WeakHashMap存储;
    4. 移除的图片资源,会放入内存缓存;
    5. 和内存缓存互斥;

    内存缓存(Memory Cache)

    1. 属于内存缓存
    2. 缓存当前没有使用的图片资源(看不见的);
    3. 使用lru算法存储
    4. 当使用时,移除后,放入到活动资源缓存中
    5. 和活动资源缓存互斥;

    资源类型缓存(Resource Disk Cache)

    1. 属于磁盘缓存
    2. 存放处理过的图片资源:如圆角、缩放、裁剪等

    原始数据缓存 (Data Disk Cache)

    1. 属于磁盘缓存
    2. 存放未处理过的原始图片资源

    网络缓存

    请求到网络数据后,创建了一个DataCacheGenerator进行本地缓存

    Glide本地文件IO和网络请求是一个线程吗?

    不是,本地IO通过diskCacheExecutor,而网络IO通过ActiveSourceExecutor

    Glide网络请求回来后数据直接返回给用户还是先存再返回?

    不是直接返回给用户,会在SourceGenerator中构造一个DataCacheGenerator来存数据;

    展开全文
  • 下载和设置Android SDK 要求使用最低要求 - 使用 Glide 要求 SDK 版本为 API 14 (Ice Cream Sandwich) 及以上。编译最低要求 - 编译 Glide 要在 SDK 版本为 API 26 (Oreo) 及以上。jar你可以直接在 GitHub下载最新的...

    下载和设置

    Android SDK 要求

    使用最低要求 - 使用 Glide 要求 SDK 版本为 API 14 (Ice Cream Sandwich) 及以上。

    编译最低要求 - 编译 Glide 要在 SDK 版本为 API 26 (Oreo) 及以上。

    jar

    你可以直接在 GitHub下载最新的jar包

    Gradle

    如果使用 Gradle,可从 Maven Central 或 JCenter 中添加对 Glide 的依赖。同样,你还需要添加 Android 支持库的依赖。

    repositories {

    mavenCentral()

    maven { url 'https://maven.google.com' }

    }

    dependencies {

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

    annotationProcessor 'com.github.bumptech.glide:compiler:4.1.1'

    }

    Kotlin

    如果你在 Kotlin 编写的类里使用 Glide 注解,你需要引入一个 kapt 依赖,以代替常规的 annotationProcessor 依赖:

    dependencies {

    kapt 'com.github.bumptech.glide:compiler:4.1.1'

    }

    开始使用

    基本用法

    加载图片

    Glide.with(fragment)

    .load(myUrl)

    .into(imageView);

    取消加载图片

    Glide.with(fragment).clear(imageView);

    在RecyclerView 中使用

    @Override

    public void onBindViewHolder(ViewHolder holder, int position) {

    String url = urls.get(position);

    Glide.with(fragment)

    .load(url)

    .into(holder.imageView);

    }

    加载占位图

    加载过程中的占用(Placeholder)

    Glide.with(fragment)

    .load(url)

    .placeholder(R.drawable.placeholder)

    .into(view);

    加载失败后显示的图片(Error)

    Glide.with(fragment)

    .load(url)

    .error(R.drawable.error)

    .into(view);

    图片的转换

    Glide中的大部分设置项都可以通过 RequestOptions 类和 apply() 方法来应用到程序中。 使用 request options 可以实现(包括但不限于):

    占位图(Placeholders)

    转换(Transformations)

    缓存策略(Caching Strategies)

    组件特有的设置项,例如编码质量,或Bitmap的解码配置等。

    加载圆形图片

    Glide.with(this)

    .load(url)

    .apply(RequestOptions.circleCropTransform())

    .into(ivTest);

    加载图片带淡入淡出的动画效果

    Glide.with(this)

    .load(url)

    .transition(withCrossFade())

    .into(ivTest);

    等等很多的转换效果,具体自己可以一个一个试试

    缓存

    Glide的默认缓存策略是AUTOMATIC,

    在磁盘缓存

    GlideApp.with(fragment)

    .load(url)

    .diskCacheStrategy(DiskCacheStrategy.ALL)

    .into(imageView);

    仅从缓存加载图片

    GlideApp.with(fragment)

    .load(url)

    .onlyRetrieveFromCache(true)

    .into(imageView);

    跳过内存缓存

    GlideApp.with(fragment)

    .load(url)

    .skipMemoryCache(true)

    .into(view);

    跳过磁盘缓存

    GlideApp.with(fragment)

    .load(url)

    .diskCacheStrategy(DiskCacheStrategy.NONE)

    .into(view);

    跳过所有的缓存

    GlideApp.with(fragment)

    .load(url)

    .diskCacheStrategy(DiskCacheStrategy.NONE)

    .skipMemoryCache(true)

    .into(view);

    清理磁盘的缓存

    Glide.get(applicationContext).clearDiskCache();

    高级用法

    加载一个图片为高斯模糊效果

    使用方法

    用到的其他工具类

    package com.qiezzi.clinic.chengqi.common.utils;

    import android.content.Context;

    import android.graphics.Bitmap;

    import android.support.annotation.NonNull;

    import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;

    import com.bumptech.glide.load.resource.bitmap.BitmapTransformation;

    import java.security.MessageDigest;

    /**

    * Created by yukuoyuan on 2017/9/29.

    */

    public class GlideBlurformation extends BitmapTransformation {

    private Context context;

    public GlideBlurformation(Context context) {

    this.context = context;

    }

    @Override

    protected Bitmap transform(@NonNull BitmapPool pool, @NonNull Bitmap toTransform, int outWidth, int outHeight) {

    return BlurBitmapUtil.instance().blurBitmap(context, toTransform, 20,outWidth,outHeight);

    }

    @Override

    public void updateDiskCacheKey(MessageDigest messageDigest) {

    }

    }

    package com.qiezzi.clinic.chengqi.common.utils;

    import android.annotation.TargetApi;

    import android.content.Context;

    import android.graphics.Bitmap;

    import android.os.Build;

    import android.renderscript.Allocation;

    import android.renderscript.Element;

    import android.renderscript.RenderScript;

    import android.renderscript.ScriptIntrinsicBlur;

    /**

    * Created by yukuoyuan on 2017/9/29.

    */

    public class BlurBitmapUtil {

    private static BlurBitmapUtil sInstance;

    private BlurBitmapUtil() {

    }

    public static BlurBitmapUtil instance() {

    if (sInstance == null) {

    synchronized (BlurBitmapUtil.class) {

    if (sInstance == null) {

    sInstance = new BlurBitmapUtil();

    }

    }

    }

    return sInstance;

    }

    /**

    * @param context 上下文对象

    * @param image 需要模糊的图片

    * @param outWidth 输入出的宽度

    * @param outHeight 输出的高度

    * @return 模糊处理后的Bitmap

    */

    @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)

    public Bitmap blurBitmap(Context context, Bitmap image, float blurRadius, int outWidth, int outHeight) {

    // 将缩小后的图片做为预渲染的图片

    Bitmap inputBitmap = Bitmap.createScaledBitmap(image, outWidth, outHeight, false);

    // 创建一张渲染后的输出图片

    Bitmap outputBitmap = Bitmap.createBitmap(inputBitmap);

    // 创建RenderScript内核对象

    RenderScript rs = RenderScript.create(context);

    // 创建一个模糊效果的RenderScript的工具对象

    ScriptIntrinsicBlur blurScript = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));

    // 由于RenderScript并没有使用VM来分配内存,所以需要使用Allocation类来创建和分配内存空间

    // 创建Allocation对象的时候其实内存是空的,需要使用copyTo()将数据填充进去

    Allocation tmpIn = Allocation.createFromBitmap(rs, inputBitmap);

    Allocation tmpOut = Allocation.createFromBitmap(rs, outputBitmap);

    // 设置渲染的模糊程度, 25f是最大模糊度

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {

    blurScript.setRadius(blurRadius);

    }

    // 设置blurScript对象的输入内存

    blurScript.setInput(tmpIn);

    // 将输出数据保存到输出内存中

    blurScript.forEach(tmpOut);

    // 将数据填充到Allocation中

    tmpOut.copyTo(outputBitmap);

    return outputBitmap;

    }

    }

    具体其他效果就自己写吧,其实原理很简单,就是通过继承BitmapTransformation接口,然后在里边把bitmap处理为自己想要的效果.没有什么过于复杂的过程.

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    展开全文
  • android glide

    2017-12-16 18:29:09
    glideglideglideglideglideglideglideglideglideglideglideglide
  • 主要介绍了Android Glide 4.0+使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 软件开发网在此之前给大家介绍过图片加载框架Glide的基本用法介绍,大家可以先参考一下,本篇内容更加深入的分析了Glide获取图片Path、Bitmap用法,以及实现的代码分析。 1. 获取Bitmap: 1)在图片下载缓存好之后...
  • 有时候需要获取网络图片的宽高来设置图片显示的大小,很多人会直接利用Glide的加载监听去拿图片的宽高,但是这样拿到的不是图片真正的宽高,而是图片显示在ImageView后的宽高。如下: //获取图片显示在ImageView后...
  • implementation 'jp.wasabeef:glide-transformations:2.0.1' 第二步:自定义继承自BitmapTransformation的类 import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas;

    参考这个

    第一步:引入依赖

    implementation 'com.github.bumptech.glide:glide:4.7.1'
    implementation 'jp.wasabeef:glide-transformations:2.0.1'
    

    第二步:自定义继承自BitmapTransformation的类

    import android.content.Context;
    import android.graphics.Bitmap;
    import android.graphics.Canvas;
    import android.graphics.Paint;
    import android.os.Build;
    import android.renderscript.RSRuntimeException;
    
    import androidx.annotation.NonNull;
    
    import com.bumptech.glide.Glide;
    import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
    import com.bumptech.glide.load.resource.bitmap.BitmapTransformation;
    
    import java.nio.charset.Charset;
    import java.security.MessageDigest;
    
    import jp.wasabeef.glide.transformations.internal.FastBlur;
    import jp.wasabeef.glide.transformations.internal.RSBlur;
    
    
    /**
     * 虚化Transformation
     * 更多效果参考:https://github.com/wasabeef/glide-transformations
     */
    
    public class BlurTransformation extends BitmapTransformation {
    
      private static String STRING_CHARSET_NAME = "UTF-8";
      private static final String ID = "com.kevin.glidetest.BlurTransformation";
      private static Charset CHARSET = Charset.forName(STRING_CHARSET_NAME);
      private static final byte[] ID_BYTES = ID.getBytes(CHARSET);
    
      private static int MAX_RADIUS = 25;
      private static int DEFAULT_DOWN_SAMPLING = 1;
    
      private Context mContext;
      private BitmapPool mBitmapPool;
    
      private int mRadius;
      private int mSampling;
    
      public BlurTransformation(Context context) {
        this(context, Glide.get(context).getBitmapPool(), MAX_RADIUS, DEFAULT_DOWN_SAMPLING);
      }
    
      public BlurTransformation(Context context, BitmapPool pool) {
        this(context, pool, MAX_RADIUS, DEFAULT_DOWN_SAMPLING);
      }
    
      public BlurTransformation(Context context, BitmapPool pool, int radius) {
        this(context, pool, radius, DEFAULT_DOWN_SAMPLING);
      }
    
      public BlurTransformation(Context context, int radius) {
        this(context, Glide.get(context).getBitmapPool(), radius, DEFAULT_DOWN_SAMPLING);
      }
    
      public BlurTransformation(Context context, int radius, int sampling) {
        this(context, Glide.get(context).getBitmapPool(), radius, sampling);
      }
    
      public BlurTransformation(Context context, BitmapPool pool, int radius, int sampling) {
        mContext = context.getApplicationContext();
        mBitmapPool = pool;
        mRadius = radius;
        mSampling = sampling;
      }
    
    
      @Override
      protected Bitmap transform(@NonNull BitmapPool pool, @NonNull Bitmap toTransform, int
          outWidth, int outHeight) {
        Bitmap source = toTransform ;
    
        int width = source.getWidth();
        int height = source.getHeight();
        int scaledWidth = width / mSampling;
        int scaledHeight = height / mSampling;
    
        Bitmap bitmap = mBitmapPool.get(scaledWidth, scaledHeight, Bitmap.Config.ARGB_8888);
        if (bitmap == null) {
          bitmap = Bitmap.createBitmap(scaledWidth, scaledHeight, Bitmap.Config.ARGB_8888);
        }
    
        Canvas canvas = new Canvas(bitmap);
        canvas.scale(1 / (float) mSampling, 1 / (float) mSampling);
        Paint paint = new Paint();
        paint.setFlags(Paint.FILTER_BITMAP_FLAG);
        canvas.drawBitmap(source, 0, 0, paint);
    
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
          try {
            bitmap = RSBlur.blur(mContext, bitmap, mRadius);
          } catch (RSRuntimeException e) {
            bitmap = FastBlur.blur(bitmap, mRadius, true);
          }
        } else {
          bitmap = FastBlur.blur(bitmap, mRadius, true);
        }
    
        //return BitmapResource.obtain(bitmap, mBitmapPool);
        return bitmap;
      }
    
      @Override
      public int hashCode() {
        return ID.hashCode();
      }
    
      @Override
      public boolean equals(Object obj) {
        return obj instanceof BlurTransformation;
      }
    
      @Override
      public void updateDiskCacheKey(MessageDigest messageDigest) {
        messageDigest.update(ID_BYTES);
      }
    
    }
    

    第三步:实际使用

    String url="url";
     Glide.with(this).load(url)
     .apply(RequestOptions.bitmapTransform(new BlurTransformation(this,25,3)))
            .into(img);
     //参数用来设置模糊程度
    

    如果在activity使用,那就用this
    如果在adapter使用,那就用getContext()
    如果在fragment使用,那就用getActivity()

    展开全文
  • 主要介绍了Android组件Glide实现图片平滑滚动效果的相关资料,具有一定的参考价值,需要的朋友可以参考下
  • 本篇文章主要介绍了AndroidGlide加载图片并实现图片缓存,这里和大家简单的分享一下Glide的使用方法以及缓存 ,有兴趣的可以了解一下。
  • Glide适配Androidx背景项目中使用的Glide版本是3.7.0。由于项目总体要迁移到Androidx,因此开始了一场Glide的大版本升级旅程。html官方文档https://muyangmin.github.io/glide-docs-cn/doc/download-setup.html按照...
  • Android Glide缓存策略

    千次阅读 2021-10-11 10:17:57
    一、glide缓存策略 缓存在请求网络图片时能减少不必要的流量浪费。Glide 缓存分为内存缓存和硬盘缓存,这两个缓存模块的作用各不相同,内存缓存的主要作用是 防止应用重复的将图片数据读取到内存,而硬盘缓存则是...
  • 主要为大家详细介绍了Android使用glide加载gif动画设置播放次数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • Android Glide 原理解析

    千次阅读 2019-07-31 10:50:33
    Android Glide 原理解析一.提供的功能特性二.简单使用三.源码结构1.内存缓存(1)MemoryCache(2)BitmapPool(3)二级内存缓存2.磁盘缓存3.图片对应的Key4.Glide对象5.RequestManager—绑定生命周期6....
  • Android Glide https 自签名 双向认证

    千次阅读 2022-02-17 11:23:32
    implementation 'com.github.bumptech.glide:glide:4.13.0' implementation 'com.github.bumptech.glide:annotations:4.13.0' kapt 'com.github.bumptech.glide:compiler:4.13.0' implementation 'com.github.bu
  • 本篇文章主要介绍了AndroidGlide实现超简单的图片下载功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
  • Glide中,Transformations 可以获取资源并修改它,然后返回被修改后的资源。通常变换操作是用来完成剪裁或对位图应用过滤器,但它也可以用于转换GIF动画,甚至自定义的资源类型。 内置类型 Glide 提供了很多内置的...
  • Android Glide加载本地gif动态图

    千次阅读 2021-11-30 16:54:07
    1,首先 dependencies 中引入glide //加载glide gif implementation 'com.github.bumptech.glide:glide:4.9.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0' 2,assets中加入gif图片资源...
  • 先将Bitmap转换成字节数组,然后用Glide加载 ByteArrayOutputStream baos = new ByteArrayOutputStream(); Bitmap bitmap = vedioList.get(position).getBitmapAlbum(); bitmap.compress(Bitmap....
  • Glide.with(mContext).load(dataBean.avatar).placeholder(R.drawable.ic_launcher_background).error(R.drawable.ic_launcher_background).apply(options).into(imageView); placeholder是占位图片,就是默认显示...
  • Android Glide的简单使用

    2020-08-31 16:16:27
    本文主要介绍了Glide简单使用。具有一定的参考价值,下面跟着小编一起来看下吧
  • 1、添加依赖 implementation 'com.github.bumptech.glide:glide:4.11.0' 2、创建个类加上去:RoundedCornersTransform package com.example.app5.glide; import android.content.res.Resources;...import android.g
  • 依赖 dependencies { implementation 'com.github.bumptech.glide:glide:4.12.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0' }
  • Glide 加载图片使用到的两个记录 Glide 加载图片保存至本地指定路径 /** * Glide 加载图片保存到本地 * * imgUrl 图片地址 * imgName 图片名称 */ Glide.with(context).load(imgUrl).asBitmap().toBytes()....
  • 一、简介: 介绍两种使用 BitmapTransformation 来实现 Glide 加载圆形图片和圆角图片的方法。... 使用 Android.support.v4.graphics.drawable.RoundedBitmapDrawable 实现圆形图片: /** * * Glide
  • Android Glide加载圆形图片、圆角图片,部分圆角图片的使用方法前言Gilde圆形图片/头像Gilde普通圆角图片即四个角都是圆角Gilde对指定角设置圆角 前言 通过本文,您可以实现以下效果: Gilde圆形图片/头像 效果...
  • Glide实现加载网络图片 Glide,一个被google所推荐的图片加载库 作者是Bump Technologies 这个库被广泛运用在google的开源项目中,包括2014年的google I/O大会上发布的官方app 加载图片的步骤 图片的地址 把图片...
  • Android Glide加载Base64圆形图

    千次阅读 2021-09-13 17:35:00
    使用Glide加载Base64圆形图片 使用方法: 1 引用Glide /*glide4.0*/ implementation 'com.github.bumptech.glide:glide:4.8.0' 2 实现代码: RequestOptions mRequestOptions = RequestOptions ....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 39,241
精华内容 15,696
关键字:

android glide