首页 > 解决方案 > 如何使用用户 ID 检索和显示图像

问题描述

我已经用用户 ID 上传了图片,但是。如何显示图像?使用 uri、位图或其他方法?

这就是我将图像上传到 firebaseStorage 的方式。

    UploadTask uploadTask = FirebaseStorage.getInstance().getReference(userUid).child("MembersUser").putBytes(bytes);
    uploadTask
            .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {

                    Toast.makeText(getActivity(), "Uploaded", Toast.LENGTH_SHORT).show();
                    imgprofile.setImageURI(uri);
                }
            })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Toast.makeText(getContext(), e.getMessage(), Toast.LENGTH_LONG).show();

                }
            });

这就是我从 firebaseStorage 调用或下载图像的方式,但是当我们从 firebaseStorage 调用时我不知道如何显示图像。

  StorageReference storageReference = FirebaseStorage.getInstance().getReference("" +currentUserID).child("image/jpeg");

    final long ONE_MEGABYTE = 1024 * 1024;
    storageReference.getBytes(ONE_MEGABYTE).addOnSuccessListener(new OnSuccessListener<byte[]>() {
        @Override
        public void onSuccess(byte[] bytes) {

            imgprofile.setImageURI();
        }
    }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {

        }
    });

当我 setImageUri 我不知道在哪里打电话。

标签: javaandroidfirebase-storage

解决方案


您可以在下载后执行以下操作将图像重建为位图byte[] bytes,然后将 ImageView 的位图设置为您刚刚创建的位图:

   ....
    @Override
    public void onSuccess(byte[] bytes) {
         Bitmap bitmap= BitmapFactory.decodeByteArray(bytes,0,bytes.length);
         imageView.setImageBitmap(bitmap);
    }
   ....

推荐阅读