android图片资源加密解密,Android Glide实现图片加密解密 自定义格式_黄啸宇的博客-程序员宅基地

技术标签: android图片资源加密解密  

前言

Glide作为一个简单易用的库,平时我们使用基本上就是

Glide.with(this).load(data).into(view)

本文主要介绍,如何加载已加密的图片.围绕2种类型:File本地资源

Url 网络资源

第一次写付费文章.文章之所以弄成付费的也是想试一下

我会尽可能写的没啥毛病.简单.易懂

如果有回复我会根据反馈来更新文章内容.

最后我会留微信,有其他问题也可以问我(不过白天上班比较忙,可能不会及时回复)

环境

Glide版本:4.11

语言:kotlinimplementation 'com.github.bumptech.glide:glide:4.11.0'

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

第一步- 定义自定义的GlideMoudle

先看代码,这里我以File举例@GlideModule

class MyGlideModule : AppGlideModule() {

override fun registerComponents(context: Context, glide: Glide, registry: Registry) {

super.registerComponents(context, glide, registry)

//关键代码

registry.append(File::class.java, InputStream::class.java, DESModelLoader.LoaderFactory())

}

/**

* 这里不开启,避免添加相同的modules两次

* @return

*/

override fun isManifestParsingEnabled(): Boolean {

return false

}

}

关键代码registry.append(File::class.java, InputStream::class.java, MyModelLoader.LoaderFactory())

看源码:@NonNull

public Registry append(

@NonNull Class modelClass,

@NonNull Class dataClass,

@NonNull ModelLoaderFactory factory) {

modelLoaderRegistry.append(modelClass, dataClass, factory);

return this;

}

1.ModelLoaderFactory factory

为什么这个参数放前面讲

因为另外2个参数都是这个类的泛型.

这个看字母意思就能明白,model加载工厂.

我们要实现的加密解密,会在这个工厂里面操作.所有需要写一个实现类

主要作用是用来创建ModelLoader

2.modelClass

也就是load的类型,也就是加载什么样的数据时会使用上面的工厂

如Glide.with(this).load(data).into(view)就是这个load

3.dataClass

这个参数一般就是InputStream,或者它的子类

第二步 实现ModelLoader

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42421854/article/details/117279230

智能推荐

伺服系统三环的PID控制_三环 pid 控制 内环外环_傻童:CPU的博客-程序员宅基地

其中yd为框架参考角位置输入信号,θ为输出角位置信号。伺服系统执行机构为典型的直流电动驱动机构,电机输出轴直接与负载-转动轴相连。为使系统具有较好的速度和加速度性能,引入测速机信号作为系统的速度反馈,直接构成模拟式速度回路。由高精度圆感应同步器与数字变换装置构成数字式角位置伺服回路。现代数控机床伺服系统常采用全闭环和半闭环控制系统,而且是三环控制,有里向外分别是电流环、速度环、位置环。伺服系统三环的PID控制原理。_三环 pid 控制 内环外环

Promise深入理解-程序员宅基地

所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理。

JAVA 编程练习9_题目:一个偶数总能表示为两个素数之和。 //由于用除sqrt(n)的方法求出的素数不包括2和3-程序员宅基地

题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?public class lianxi { public static void main(String[] args) ..._题目:一个偶数总能表示为两个素数之和。 //由于用除sqrt(n)的方法求出的素数不包括2和3, //因此在判断是否是素数程序中人为添加了一个3。

杭电oj1072java实现bfs-程序员宅基地

Nightmare 问题描述 伊格内修斯昨晚有一场噩梦。他发现自己身陷迷宫,身上有一枚定时炸弹。迷宫有一个出口,在炸弹爆炸之前,伊格内修斯应该走出迷宫。炸弹的最初爆炸时间设定为6分钟。为了防止炸弹爆炸,伊格内修斯必须缓慢移动,即从一个区域移动到最近的区域(也就是说,如果Ignatius现在站在(x,y)上,他只能在(x 1, y),(x-1,y),(x,y 1)或(x,y-1))在1分钟内。...

多线程与多进程_大量计算的使用多进程-程序员宅基地

知识预览一 进程与线程的概念二 threading模块三 multiprocessing模块四 协程五 IO模型 回到顶部一 进程与线程的概念1.1 进程考虑一个场景:浏览器,网易云音乐以及notepad++ 三个软件只能顺序执行是怎样一种场景呢?另外,假如有两个程序A和B,程序A在执行到一半的过程中,需要读取大量的数据输入(I/O操作),而此时CPU只能静静地_大量计算的使用多进程

HTML的标签英文全称_html中a标签的英文全程-程序员宅基地

文章原文出处:https://blog.csdn.net/qq_40942329/article/details/78879992 标签 标签含义 英文 英文含义 备注 h 标题 headline 标题 p 段落 paragraph 段落 hr 水平分割线 horizontal..._html中a标签的英文全程

随便推点

JMVC代码研读--1-程序员宅基地

H264AVCEncoderTest类,构造函数与析构函数都是private,因此不能在栈上实例化。不能直接声明对象,也不能直接用new和delete来操作,只能将new和delete放在公有函数里,即create和destroy里。private: H264AVCEncoderTest(); virtual ~H264AVCEncoderTest(); 类似于单件模式,提供

【HTML】使用Vscode快速书写HTML_vscode简写div-程序员宅基地

快速书写HTML1. 前言快速书写的语法应该溯源到Emmet插件,现在绝大多数编辑器都支持该语法;本文以Vscode为例介绍核心语法,力求简洁明了。2. 内容H5模板 !! 快速生成H5模板 class & id<!-- div.container#main --><div class="container" id="main"></..._vscode简写div

Andriod PackageManager使用-程序员宅基地

1.获取系统应用程序列表Android系统提供了很多服务管理类,包括ActivityManager,PowerManager,AudioManager,PackageManagerPackageManager的功能:.安装,卸载应用.查询Permission相关信息.查询Aplication相关信息(application,activity,receiver,service,p

SpringBoot与SpringCloud的版本对应详细版_springboot 2.1.8 springcloud-程序员宅基地

SpringBoot与SpringCloud的版本对应详细版关于spring cloud1.x版本和2.x版本区别spring cloud各个版本之间是有所区别的,比如在SpringCloud中,1.X和2.X版本在pom.xml中引入的jar包名字都不一样,比如有的叫spirng-cloud-starter-hystrix 有的叫spring-cloud-netflix-..._springboot 2.1.8 springcloud

java锁的种类及研究-程序员宅基地

Java锁的种类以及辨析 锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如synchronized 和ReentrantLock等等) 。这些已经写好提供的锁为我们开发提供了便利,但是锁的具体性质以及类型却很少被提及。本系列文章将分析JAVA中常见的锁以及其特性,为大家答疑解惑。1、自旋锁2、自旋锁的其他种类3、阻塞锁4、可重入锁5、读写锁6、

IDEA 2019.1 不支持lombok插件问题解决方案_2019idea无法识别lombok-程序员宅基地

1.先到gitHub把IDEA2019.1对应版本下载下来,下面是地址https://github.com/mplushnikov/lombok-intellij-plugin/releases/tag/releasebuild_0.25下载完后,直接打开IDEA,找到File-->Settings导入后,重启IDEA就成功了。..._2019idea无法识别lombok