Android 来自Firebase storageReference的getBytes不工作
我正在创建我的第一个应用程序,在这个应用程序中,我想将图片从Firebase存储下载到位图中,然后依次更改手机的壁纸 目前,该函数也没有进入Android 来自Firebase storageReference的getBytes不工作,android,firebase,bitmap,firebase-storage,android-glide,Android,Firebase,Bitmap,Firebase Storage,Android Glide,我正在创建我的第一个应用程序,在这个应用程序中,我想将图片从Firebase存储下载到位图中,然后依次更改手机的壁纸 目前,该函数也没有进入 onSuccess(byte[] bytes) { 或 相反,它跳到了正确的位置 return bmp[0]; 我不明白为什么,我做错了什么 Storage和storageRef不为null public static Bitmap getImageBitmap(String url) { com.google.firebase.sto
onSuccess(byte[] bytes) {
或
相反,它跳到了正确的位置
return bmp[0];
我不明白为什么,我做错了什么
- Storage和storageRef不为null
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]; }
公共静态位图getImageBitmap(字符串url){ com.google.firebase.storage.FirebaseStorage存储=com.google.firebase.storage.FirebaseStorage.getInstance(); StorageReference gsReference=storage.getReferenceFromUrl(url); 如果(bmp==null){ bmp=新位图[1]; } 最终长1兆字节=1024*1024; gsReference.getBytes(1兆字节) .addOnSuccessListener(新OnSuccessListener(){ @凌驾 成功时的公共void(字节[]字节){ BitmapFactory.Options=new 选项(); options.inMutable=true; bmp[0]=BitmapFactory.decodeByteArray(字节,0,字节.长度,选项); } }).addOnFailureListener(新的OnFailureListener(){ @凌驾 public void onFailure(@NonNull异常){ int errorCode=((StorageException)exception).getErrorCode(); 字符串errorMessage=exception.getMessage(); Log.d(“标签”,错误信息+错误代码); } }); 返回bmp[0]; }
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];
Glide.with(user.getmContext())
.asBitmap()
.load(url)
.into(新的SimpleTarget(){
@凌驾
public void onResourceReady(@NonNull Bitmap resource,@Nullable Transition您需要等待结果。Get bytes方法是异步的,这就是您添加侦听器的原因,您的值将在异步任务完成后设置
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];