Glide 处理网络流 -> 文件的类是 StreamEncoder,处理缓存文件读取的是ByteBufferFileLoader。Url 图片会走 网络流 -> 文件缓存 (Encoder)-> 读取缓存(FileLoader)的流程。
如果要保持本地为加密模式,只在读取时解密,在registerComponents中注册:
registry.replace(File.class, ByteBuffer.class, new EncryptFileLoader.Factory(glide.getArrayPool()));
EncryptFileLoader 参照 ByteBufferFileLoader,在loadData中解密ByteBufer
如果要先解密网络流在保存缓存,在registerComponents中注册:
registry.append(InputStream.class, new EncryptStreamEncoder(glide.getArrayPool()));
EncryptStreamEncoder 参照StreamEncoder,在encode 中解密网络流并保存到文件。