【发布时间】:2023-03-05 01:50:05
【问题描述】:
我正在创建我的第一个应用程序,我想在其中将图片从 Firebase 存储下载到位图,然后再更改手机的壁纸。
目前,该功能都没有进入
onSuccess(byte[] bytes) {
或到
onFailure(@NonNull Exception exception) {
而是直接跳到
return bmp[0];
我不明白为什么,我做错了什么。
-
Storage 和 storageRef 不为空。
public static Bitmap getImageBitmap(String url) { com.google.firebase.storage.FirebaseStorage storage = com.google.firebase.storage.FirebaseStorage.getInstance(); StorageReference gsReference = storage.getReferenceFromUrl(url); if (bmp == null) { bmp = new Bitmap[1]; } final long ONE_MEGABYTE = 1024 * 1024; gsReference.getBytes(ONE_MEGABYTE) .addOnSuccessListener(new OnSuccessListener<byte[]>(){ @Override public void onSuccess(byte[] bytes) { BitmapFactory.Options options = new BitmapFactory.Options(); options.inMutable = true; bmp[0] = BitmapFactory.decodeByteArray(bytes, 0, bytes.length, options); } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception exception) { int errorCode = ((StorageException) exception).getErrorCode(); String errorMessage = exception.getMessage(); Log.d("TAG", errorMessage + errorCode); } }); return bmp[0]; }
在我的尝试中,我尝试通过以下方式使用 Glide:
Glide.with(user.getmContext())
.asBitmap()
.load(url)
.into(new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
bmp[0] = resource;
}
});
return bmp[0];
但这并没有产生任何变化,onResourceReady(位图资源)永远不会被调用。
【问题讨论】:
标签: android firebase bitmap firebase-storage android-glide