这是我可以从Firebase存储下载图像或任何文件的方法
// Create a storage reference from our app
StorageReference storageRef = storage.getReferenceFromUrl("gs://<your-bucket-name>");
// Create a reference with an initial file path and name
StorageReference pathReference = storageRef.child("images/stars.jpg");
File localFile = File.createTempFile("images", "jpg");
storageRef.getFile(localFile).addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() {
@Override
public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) {
// Local temp file has been created
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// Handle any errors
}
});
这就是我如何使用壁画显示任何图像的方法
GenericDraweeHierarchyBuilder builder =
new GenericDraweeHierarchyBuilder(context.getResources());
GenericDraweeHierarchy hierarchy = builder
.setFadeDuration(100)
.build();
hierarchy.setActualImageScaleType(ScalingUtils.ScaleType.FOCUS_CROP);
hierarchy.setActualImageFocusPoint(new PointF(0.5f,0f));
Uri uri = Uri.parse(<imageUrl>);
viewHolder.ivImage.setImageURI(uri);
viewHolder.ivImage.setHierarchy(hierarchy);
viewHolder.ivImage.setAspectRatio(1.15f);
所以我想要一个下载URL或uri,我可以将其设置为Fresco uri,名称为name。
我的问题是如何从Firebase Storage获取图像URL?
这是我们如何从Firebase存储中获取下载URL的方法。
storageRef.child("users/me/profile.png").getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
// Got the download URL for 'users/me/profile.png'
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// Handle any errors
}
});
现在从中创建uri并使用Fresco进行显示。
GenericDraweeHierarchyBuilder builder =
new GenericDraweeHierarchyBuilder(context.getResources());
GenericDraweeHierarchy hierarchy = builder
.setFadeDuration(100)
.build();
hierarchy.setActualImageScaleType(ScalingUtils.ScaleType.FOCUS_CROP);
hierarchy.setActualImageFocusPoint(new PointF(0.5f,0f));
Uri uri = Uri.parse(<downloadUrl>);
viewHolder.ivImage.setImageURI(uri);
viewHolder.ivImage.setHierarchy(hierarchy);
viewHolder.ivImage.setAspectRatio(1.15f);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句