我正在开发一个需要从其网址加载多个图像的应用程序。我将所有图像保存在 firebase 存储中。我目前正在使用压缩器来减小尺寸。
newImageFile=new File(uri1.getPath());
try {
compressedImageFile = new Compressor(ProductAdd.this)
.compressToBitmap(newImageFile);
} catch (IOException e) {
e.printStackTrace();
}
baos = new ByteArrayOutputStream();
compressedImageFile.compress(Bitmap.CompressFormat.JPEG, 100, baos);
thumbData1 = baos.toByteArray();
我使用 Glide 从 url 加载图像
Glide.with(context).load(imgUrl).into(holder.cutImg);
我想知道是否有任何方法可以改进以更快地加载图像。也许以特定格式存储它们。
最佳答案
您可以在加载原始图像之前将原始图像的缩略图加载到 ImageView 中。
Glide.with(fragment)
.load(url)
.thumbnail(0.05f)
.into(imageView);
这会将原始图像的 5% 质量加载到 View 中,并在加载完整图像时将其替换。
如果您有单独的缩略图 URL
Glide.with(fragment)
.load(url)
.thumbnail(
Glide.with(fragment)
.load(thumbnailUrl))
.into(imageView);
现在当图像加载时,它会立即加载到 View 中,在这里您可以使用过渡来获得平滑效果。
Glide.with(fragment)
.load(url)
.thumbnail(0.05f)
.transition(DrawableTransitionOptions.withCrossFade())
.into(view);
您可以查看我的 project其中我还首先压缩图像并将缩略图图像存储到 Firebase 存储,然后加载它。
您也可以尝试不同的DiskCacheStrategies
,但我建议使用默认的,它工作得很好!
这里有各种DiskCacheStrategies:
.diskCacheStrategy(DiskCacheStrategy.ALL)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.diskCacheStrategy(DiskCacheStrategy.DATA)
.diskCacheStrategy(DiskCacheStrategy.AUTOMATIC)
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
关于android - 从 url 加载图像的高效和快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57330782/