Glide中图片处理

Glide-加载Gif 前言:这一节我们将讲到Glide如何加载gif图(我最开始使用的图片框架其实是Imagerloader和Picasso,但是他们都不支持gif的加载,所以后来我才开始尝试使用Glide,慢慢的发现Glide许多的强大功能)Glide 系列目录 1.Glide-入门教程 2.Glide-占位图以及加载动画 3.Glide-加载本地图片 4.Glide-加载Gif 1.简单加载如果只是简单加载gif,其 阅读详情


一、加载本地资源

1.在清单文件中增加权限

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

2.加载

其实Glide加载本地图片和加载网络图片调用的方法是一样的,唯一的区别是说加载SD卡的图片需要SD卡的权限,加载网络需要网络权限

//本地文件
    File file = new File(Environment.getExternalStorageDirectory(), "xiayu.png");
    //加载图片
    Glide.with(this).load(file).into(iv);


一、Glide-图片预处理(圆角,高斯模糊等)

1.创建一个类继承BitmapTransformation

需要实现两个方法,其中transform方法里面能拿到bitmap对象,这里就是对图片做处理的地方

1.创建一个类继承BitmapTransformation
需要实现两个方法,其中transform方法里面能拿到bitmap对象,这里就是对图片做处理的地方

public  class CornersTransform extends BitmapTransformation {

        @Override
        protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {
            //TODO
        }

        @Override
        public String getId() {
           //TODO
        }
}

2.使用

通过调用transform方法就能展示处理后的图片

Glide.with(this).load(url).transform(new CornersTransform()).into(iv1);

3.圆角处理

  • 自定义Transformation
public  class CornersTransform extends BitmapTransformation {
    private float radius;

    public CornersTransform(Context context) {
        super(context);
        radius = 10;
    }

    public CornersTransform(Context context, float radius) {
        super(context);
        this.radius = radius;
    }

    @Override
    protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {
        return cornersCrop(pool, toTransform);
    }

    private Bitmap cornersCrop(BitmapPool pool, Bitmap source) {
        if (source == null) return null;

        Bitmap result = pool.get(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888);
        if (result == null) {
            result = Bitmap.createBitmap(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888);
        }

        Canvas canvas = new Canvas(result);
        Paint  paint  = new Paint();
        paint.setShader(new BitmapShader(source, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP));
        paint.setAntiAlias(true);
        RectF rectF = new RectF(0f, 0f, source.getWidth(), source.getHeight());
        canvas.drawRoundRect(rectF, radius, radius, paint);
        return result;
    }

    @Override
    public String getId() {
        return getClass().getName();
    }
}

  • 使用:
Glide.with(this).load(url).transform(new CornersTransform(this,50)).into(iv1);
  • 使用多个transform

transform方法是不支持多次调用的,如果你调用了两次,那么第二次的会覆盖了第一次的效果

但是他有一个重载的方法可以传入多个对象,这样传入的变形器都能够生效

Glide.with(this).load(url).transform(new 
CircleTransform(this),new CornersTransform(this,50)).into(iv1);

二、Glide-加载Gif和MP4

1.简单加载

Glide.with(this).load(mGifUrl).placeholder(R.mipmap.place).error(R.mipmap.icon_photo_error).into(mIv);

2.把gif当作普通图片加载(asBitmap)

Glide.with(this).load(mGifUrl).asBitmap().placeholder(R.mipmap.place).error(R.mipmap.icon_photo_error).into(mIv);

3.检查是否gif(asGif)

如果你希望加载的只是gif,如果不是gif就显示错误图片,那么只用加上asGif方法

Glide.with(this).load(mGifUrl).asGif().placeholder(R.mipmap.place).error(R.mipmap.icon_photo_error).into(mIv);

4.加载本地视频缩略图

直接放file文件进去

Glide只会加载本地视频的第一帧,也就是缩略图

mVideoFile = new File(Environment.getExternalStorageDirectory(), "xiayu.mp4");
   Glide.with(this).load(mVideoFile).placeholder(R.mipmap.place).error(R.mipmap.icon_photo_error).into(mIv);


Android 在扫描U盘解析图片缩略图时,拔出U盘导致崩溃 Android 在扫描U盘解析图片缩略图时,拔出U盘导致崩溃 在出现该问题时,发现日志中显示processkiller:....相关信息,然后出现了进程被杀死的日志。 E/ProcessKiller( 2176): Process com.android.xxx (2866) has open file xxxxxxxx W/ProcessKiller( 2176): Sending SIG 阅读详情

相关推荐

[league/glide]两行代码实现一套强大的图片处理HTTP服务

本文对几个重点的功能做个介绍。只要简单的几行代码,就实现了一套健全的图片处理HTTP服务,当你有类似的需求的时候,抓紧用上吧。原文标题:[league/glide]两行代码实现一套强大的图片处理HTTP服务PHP武器库版权声明:本文由(PHP武器库官网)原创和首发,所有权利归phpreturn(PHP武器库)所有,本站允许任何形式的转载/引用文章,但必须同时注明出处。

PHP武器库 664

Glide 显示视频缩略图及遇到的坑

Glide 显示视频缩略图及遇到的坑实现原理Glide支持视频格式的文件,但是在3.x里会有些欠缺。其底层是通过 MediaMetadataRetriever实现的。MediaMetadataRetriever拥有获取视频的第几帧的能力,Glide获取视频里的第n帧的代码如下:VideoBitmapDecoder.java@Override public Bitmap decode(ParcelFi

seekting的专栏 1万+

加载网络视频缩略图

此文件中介绍了加载网络视频作为缩略图的源代码,部分代码来自于网上(未修改前不适用api10后),自己修改后亲测可行。需要使用自定义的控件MyImageView。为了下载其它资源所以需要积分还望谅解。

Glide加载视频缩略图、gif图片

1: 加载本地视频缩略图,一般是指加载视频的第一帧画面的缩略图 Glide.with(context).load(videoFileUrl).diskCacheStrategy(DiskCacheStrategy.RESULT) .crossFade().centerCrop().placeholder(placeHolder).error(plac...

想飞的企鹅 1万+

利用MobaXterm解密Session密码的实战指南

本文提供了利用MobaXterm解密Session密码的详细实战指南,帮助运维工程师和开发者在忘记密码时找回加密存储的远程连接信息。通过Python脚本和注册表操作,逐步解析MobaXterm的AES加密机制,实现密码解密,并分享安全建议和常见问题解决方案。

weixin_26759093的博客 232

Unity 2021 LTS安装避坑指南:从下载到第一个3D项目的完整流程

本文提供了一份详尽的Unity 2021 LTS安装与首个3D项目创建指南。内容涵盖从Unity Hub下载、版本选择、模块安装避坑,到编辑器界面解析、创建旋转立方体脚本的完整流程,旨在帮助初学者快速搭建稳定开发环境并上手核心操作。

mango的博客 308

2025最强Glide图片处理实战:从安装到高级优化全攻略

你还在为动态图片裁剪性能发愁?还在手动编写复杂的图片滤镜代码?Glide——这款基于HTTP API的即时图片处理库,让你用URL参数实现90%的图片编辑需求,缓存命中率提升80%,服务器负载降低60%。本文从零基础安装到企业级部署,全方位拆解Glide的核心功能与实战技巧,读完你将掌握: - 3分钟快速搭建图片处理服务 - 15个核心API参数的组合运用 - 签名URL防篡改与缓存策略 - L...

gitblog_00986的博客 468

AD9371实战:如何用ZCU106搭建JESD204B TX时钟链(含关键参数计算)

本文详细解析了如何基于Xilinx ZCU106开发板为AD9371搭建JESD204B TX时钟链。文章从系统需求出发,逐步推导出从IQ采样率到GTH线速率的关键参数计算公式,并提供了在Vivado中配置GTH收发器(包括QPLL选择、分频比设置)的实战步骤与调试技巧,旨在帮助硬件工程师快速实现稳定可靠的JESD204B高速数据传输链路。

weixin_29164843的博客 293

图片处理之Glide

往往在做项目的时候Fresco并不是首选(因为体积大、依赖性强),而是Glide,但是在我们使用的过程中进行封装使用。 Glide的好处 /** * Glide特点 * 使用简单 * 可配置度高,自适应程度高 * 支持常见图片格式 Jpg png gif webp * 支持多种数据源 网络、本地、资源、Assets 等 * 高效缓存策...

jiahui6666的博客 375

Ubuntu升级遇到grub-efi-amd64-signed安装失败?3步搞定这个烦人错误

本文深度解析Ubuntu系统升级时grub-efi-amd64-signed安装失败并提示“cannot find EFI directory”错误的根本原因。该错误通常由EFI系统分区挂载异常、BIOS/UEFI引导模式不匹配或dpkg包状态死锁导致。文章提供了三步精准修复流程:首先检查并修复ESP分区挂载,其次处理dpkg依赖问题,最后针对传统BIOS系统提供适配方案,帮助用户安全彻底地解决这一常见升级难题。

r7s8t的博客 398

R语言maftools包实战:5分钟搞定TCGA癌症突变数据可视化(附完整代码)

本文详细介绍了如何使用R语言的maftools包快速解析和可视化TCGA癌症突变数据。通过实战演示,从环境搭建、数据导入到核心可视化(如瀑布图、棒棒糖图)和深度统计分析(如生存分析、突变特征),帮助生物信息学研究者高效完成癌症基因组学分析,大幅提升从原始MAF数据到发表级图表的效率。

weixin_29054399的博客 187

Android 开发 框架系列 glide-transformations 图片处理基本使用

首先简单的介绍一下Gilde作用范围。Gilde功能十分强大,它可以实现图片处理、图片本地加载、图片网络加载、位图加载、图片内存缓存、图片磁盘缓存、Gif图片加载。使用简单轻松,轻松的后是它强大的心,它帮你解决了http、输入输出流、图片缓存管理、批量加载线程管理、图片处理。 另外,因为Gilde更新了很多年了,所以部分之前的使用方式已经被作者修改,所以本人重新整理了一些基本使用: ...

cherish152的博客 212

YOLOv8n模型导出ONNX的避坑指南:解决版本差异,正确生成TensorRT/RKNN所需输出节点

本文详细介绍了YOLOv8n模型导出ONNX格式的实战避坑指南,涵盖版本差异处理、代码修改技巧及TensorRT/RKNN部署优化方案。针对不同推理框架需求,提供输出节点生成、动态轴处理和后处理划分等核心问题的解决方案,帮助开发者高效完成模型部署。

weixin_33247358的博客 357

Android-Glide源码解析(三)图片处理

Android-Glide源码解析(三)图片处理

HuangLin的博客 667

FlashAttention 快速安装指南(避免长时间编译)

FlashAttention 编译太慢?本篇提供无需编译的预编译 wheel 快速安装方案,适配多版本 Python、PyTorch 和 CUDA,极大节省部署时间!

Junseer的博客 9718

LPDDR5 学习笔记05:WCK操作详解

LPDDR5 SDRAM采用双时钟设计,写时钟(WCK)频率为命令时钟(CK)的2倍或4倍,需要通过WCK2CK同步机制解决时钟域对齐问题。该同步操作由带特殊标志位的CAS命令触发,控制器需提供半频WCK脉冲进行状态校准。同步完成后才能执行读写操作,且支持多存储体组同步和WCK常开模式以优化性能。掉电后必须重新执行同步流程,确保时钟域正确对齐。该机制有效解决了高速内存接口的时序挑战,为LPDDR5性能提升提供关键技术支撑。

一只豌豆象的博客 2003

Glide图片框架使用详细介绍(三)自定义glide以及图片处理自定义transform

目前已经更新的部分资料:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取![外链图片转存中…(img-S0V3nq5f-1711858722305)][外链图片转存中…(img-vafU5KMB-1711858722305)][外链图片转存中…(img-d2JTLR0Z-1711858722305)]《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!

2401_84003630的博客 1033

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

图片处理框架之Glide

一 前言 英文原文 Introduction to Glide, Image Loader Library for Android, recommended by Google 首发地址  http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0327/2650.html        在泰国举行的谷歌开发者论坛上,谷歌

ABang的博客 648

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Glide框架高斯模糊图片处理

转自:https://ligboy.org/?p=380 对于不需要看废话的请直接Show me the code 对于模糊处理,一般的解决方案有四种: Java实现的算法处理;NDK实现的算法处理;RenderScript处理;openGL处理; 这四种方案的性能考虑的话,一般来讲应该是: 1 RenderScript是Android自SDK17提供的一套平台

Dijkstra的专栏 5217

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

安卓开发之Glide图片处理框架的使用

文章预览前言一、基本使用1.1、引入依赖1.2、activity_main.xml1.3、加载网络图片1.4、修改图片效果二、另一种方式 前言 Android在使用图片的时候是相当麻烦的,因为需要一个像素一个像素地加载这些图片到内存。一个中端手机所拍摄的一张照片有2592×1936(5百万)像素,这会占用大概19M内存。如果你再加上各种好坏不一的网络下的图片请求,同时要处理缓存、图片加载等问题,焦头烂额。如果你这时候使用了一个像Glide一样经过不断优化和严格测试的图片处理库,你会庆幸你节省了大量的时间,同

niulinbiao的博客 622

android glide 进度,Android - 图片处理之Glide加载进度

老婆保佑,代码无BUG效果图前言带有加载进度的Glide,看着是不是很好,这里也是给自己做个笔记,一:原理Glide 默认肯定是没有这个功能的,所以小伙办们就放弃吧,首先Glide 默认加载器,是HttpUrlConnection,我们要做的是改成OKHttp,通过okhttp的拦截器,获取到图片的大小,就可以实现监听下载进度二: 实现菜鸡一枚,就不献丑了,郭大神也得很好,可以看我上一篇Andro...

weixin_34072734的博客 457

Android 效率开发之图片---Glide 旋转图片处理

    事实上Glide会对旋转的图片正确处理,比如你在三星手机上拍照旋转了90度,用Glide 加载的话,会正确显示。   通过Glide 强大的图片变换功能,我们也可以旋转图片,关于Glide 的图片变换请参考:Android图片加载框架最全解析(五),Glide强大的图片变换功能,关于图片旋转请参考 :Android 效率开发之图片旋转处理,图片旋转的本质是相同的,如下:自定义图片变换类继承...

dhl_1986的博客 4008

Android之图片处理 Glide4源码解析

这里写目录标题一级目录二级目录三级目录 一级目录 二级目录 三级目录

lizhichao628的专栏 1523

Android图片处理之Glide使用大全

Android Glide是一个开源的图片加载和缓存处理的第三方框架。和Android的Picasso库类似,个人感觉比Android Picasso好用。Android Glide使自身内部已经实现了缓存策略,使得开发者摆脱Android图片加载的琐碎事务,专注逻辑业务的代码。Android Glide使用便利,短短几行简单明晰的代码,即可完成大多数图片从网络(或者本地)加载、显示的功能需求。

Losileeya 4万+

Glide 图片处理类

1.添加Glide库 需要在build.gradle中加入依赖,目前最新的版本是3.7.0, Glide库地址  compile 'com.github.bumptech.glide:glide:3.7.0' 2.加载网络图片 /** * Created by mChenys on 2016/6/6. */ public class TestGlideActivity extends Ac

langxian_168的博客 356
上一篇: Android中图片的裁剪与压缩
下一篇: 自定义ViewGroup实现搜索栏历史记录流式布局
浮空over
博客等级 码龄7年 6粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值