这是我下载图像网址的方式
StorageReference gsReference = FirebaseStorage.getInstance().getReference();
gsReference.child(<image_path>).getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
// use fresco to load images
}
});
然后我像这样使用壁画:
StorageReference gsReference = FirebaseStorage.getInstance().getReference();
gsReference.child(<image_path>).getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
ImageRequest request1 = ImageRequestBuilder.newBuilderWithSource(Uri.parse(uri))
.setProgressiveRenderingEnabled(true)
.build();
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setImageRequest(request1)
.setControllerListener(this)
.setOldController(imageView.getController())
.build();
imageView.setController(controller);
}
});
当用户离线时,我失去了Fresco缓存功能,因为我必须下载要在壁画中使用的图像URL。因此,图片网址永远不会加载。
如何从壁画的缓存中获取图像,以便即使离线也可以加载图像,并且无法获取下载URL?
确定路径中图像的下载URL需要连接到Google服务器。您的设备离线时无法拨打getDownloadURL()
。