我目前正在使用 Picasso 和 OkHttp 进行位图缓存。我想要做的是检索特定的缓存位图,在其上绘制,然后将绘制在位图上的位图放回内存和磁盘缓存中。我的实现非常标准,我只是使用 Target 并将加载的位图添加到驻留在 GridView 中的自定义 ImageView。我一直在环顾四周,似乎找不到办法做到这一点。这些库甚至支持这样的东西吗?
最佳答案
Picasso 只是用于下载缓存和显示图像(具有转换、交叉淡入淡出等好处)而不用于编辑的库。您似乎所做的似乎超出了 picasso 的使用范围。
我想说的是,如果您愿意,您仍然可以使用 Picasso 下载图像,但是当您获得位图时,您的应用程序确实存储了修改后的版本。因此,当用户完成绘制时,您必须自己将其存储在本地文件中(如果是大图像,您还可以为 GridView 创建单独的较小缩略图)并使用此版本。要将更改的位图内容保存到文件中,您可以调用
outBitmap.compress(Bitmap.CompressFormat.PNG, 100, outStream);
您也可以使用 Picasso 将本地文件加载到您的 GridView 中:Picasso.with(context).load("fileUrl").into(mImageView);
。因此,在您的代码中,您将检查是否有本地编辑版本并使用 Picasso 从本地文件加载它,否则使用 Picasso 从服务器加载它。
如果你想在服务器上保存图像,你可以在用户编辑后将它发送到服务器。然后 Picasso+OkHttp 会再次下载它(假设你更新了服务器上的 ETag 等 http 缓存属性)。
关于android - 使用 Picasso 和 OkHttp 更新/更改缓存位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23331439/