Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法将图片从Firebase存储加载到Imageview_Java_Android_Firebase_Firebase Storage - Fatal编程技术网

Java 无法将图片从Firebase存储加载到Imageview

Java 无法将图片从Firebase存储加载到Imageview,java,android,firebase,firebase-storage,Java,Android,Firebase,Firebase Storage,我正在将图片上载到应用程序中的Firebase存储。它可以很好地上传,并且可以在firebase storage online中查看。当我试图获取它并在图像视图中显示它时,它不会显示在图像视图中,而图像视图也会消失。我已经用Piccaso和glide试过了,但没有任何效果。代码附在下面 上传代码: @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {

我正在将图片上载到应用程序中的Firebase存储。它可以很好地上传,并且可以在firebase storage online中查看。当我试图获取它并在图像视图中显示它时,它不会显示在图像视图中,而图像视图也会消失。我已经用Piccaso和glide试过了,但没有任何效果。代码附在下面

上传代码:

 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == PICK_IMAGE && resultCode == RESULT_OK && data != null && data.getData() != null) {

            uri = data.getData();

            try {
                Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);




                profile_image = findViewById(R.id.profileimage);
                profile_image.setImageBitmap(bitmap);



                imageRef=storageReference.child(userID);
                imageRef.putFile(uri)
                        .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                            @Override
                            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                                //if the upload is successful
                                //hiding the progress dialog
                                //and displaying a success toast
                                //dismissDialog();

                                profilePicUrl = taskSnapshot.getMetadata().getReference().getDownloadUrl().toString();
                            }
                        })
                        .addOnFailureListener(new OnFailureListener() {
                            @Override
                            public void onFailure(@NonNull Exception exception) {
                                //if the upload is not successful
                                //hiding the progress dialog
                                // dismissDialog();
                                //and displaying error message
                                Toast.makeText(profile.this, exception.getCause().getLocalizedMessage(), Toast.LENGTH_LONG).show();
                            }


                        });















            } catch (IOException e) {
                e.printStackTrace();
            }
        }
@覆盖
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
if(requestCode==PICK_IMAGE&&resultCode==RESULT_OK&&data!=null&&data.getData()!=null){
uri=data.getData();
试一试{
位图Bitmap=MediaStore.Images.Media.getBitmap(getContentResolver(),uri);
profile_image=findviewbyd(R.id.profileimage);
profile_image.setImageBitmap(位图);
imageRef=storageReference.child(userID);
imageRef.putFile(uri)
.addOnSuccessListener(新的OnSuccessListener(){
@凌驾
成功时公共无效(UploadTask.TaskSnapshot TaskSnapshot){
//如果上传成功
//隐藏进度对话框
//并展示成功祝酒词
//dismissDialog();
profilePicUrl=taskSnapshot.getMetadata().getReference().getDownloadUrl().toString();
}
})
.addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常){
//如果上传不成功
//隐藏进度对话框
//dismissDialog();
//并显示错误消息
Toast.makeText(profile.this,exception.getCause().getLocalizedMessage(),Toast.LENGTH_LONG).show();
}
});
}捕获(IOE异常){
e、 printStackTrace();
}
}
下载并加载到图像视图代码:


        fbstorage=FirebaseStorage.getInstance();
        storageReference=fbstorage.getReference();
        imageRef=storageReference.child(userID);
        final String h=imageRef.getDownloadUrl().toString();

        storageReference.child(userID).getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
            @Override
            public void onSuccess(Uri uri) {

                Toast.makeText(profile.this, "hello", Toast.LENGTH_SHORT).show();
                Picasso.with(profile.this).load(h).into(profile_image);

            }
        });


fbstorage=FirebaseStorage.getInstance();
storageReference=fbstorage.getReference();
imageRef=storageReference.child(userID);
最后一个字符串h=imageRef.getDownloadUrl().toString();
storageReference.child(userID).getDownloadUrl().addOnSuccessListener(新的OnSuccessListener()){
@凌驾
成功时的公共无效(Uri){
Toast.makeText(profile.this,“hello”,Toast.LENGTH_SHORT).show();
毕加索.with(profile.this).load(h).into(profile\u图像);
}
});

用glide试试。这个代码对我来说很好用

  StorageReference storageReference = FirebaseStorage.getInstance().getReference().child("folderName"+"/"+thePicName);
    Glide.with(context.getApplicationContext())
            .using(new FirebaseImageLoader())
            .load(storageReference)
            .asBitmap()
            .diskCacheStrategy(DiskCacheStrategy.NONE)
            .priority(Priority.IMMEDIATE)
            .into(new BitmapImageViewTarget(pic) {
                @Override
                protected void setResource(Bitmap resource) {
                    RoundedBitmapDrawable drawable = RoundedBitmapDrawableFactory.create(context.getResources(),
                            Bitmap.createScaledBitmap(resource, 150, 150, false));
                    drawable.setCircular(false);
                    pic.setImageDrawable(drawable);
                }
            });

上载文件时是否尝试将图像设置为
onSuccess()
内的视图?@AlexMamo是的,同样的问题为什么要加载
h
而不是刚检索到的uri?