【问题标题】:Can I reduce the size of the image I bring from firebase?我可以减小从 Firebase 带来的图像的大小吗?
【发布时间】:2022-01-05 19:22:38
【问题描述】:

从Firebase Storage导入图片放入ImageView时出现图片不可见的问题。

在我看来,原因是图片的尺寸很大。

当我导入我保留的图像时,我认为我需要减小图像的大小。有解决办法吗?

这是我的代码。

part.orderByChild("Art_ID").equalTo(art_id).addValueEventListener(new ValueEventListener() {
                        @Override
                        public void onDataChange(@NonNull DataSnapshot snapshot) {
                            for (DataSnapshot asnap: snapshot.getChildren()){
                                Log.i("ValueArtinfo", asnap.getValue().toString());
                                String art_filename = asnap.child("Filename").getValue(String.class);

                                StorageReference sart = storage.getReferenceFromUrl("gs://myaddressxxx.com/Art/" + art_filename +".jpg");
                                // Bitmap bm = BitmapFactory.decodeFile(String.valueOf(sart));
                                // Bitmap bm = ShrinkBitmap(sart, 300, 300);
                                Glide.with(getApplicationContext() ).load(sart).into(str_art);
                            }

                        }
                        

                        @Override
                        public void onCancelled(@NonNull DatabaseError error) {
                            throw error.toException();
                        }
                    });

这是我的 Firebase 存储。可以看到,文件很大,数量在1000左右。

我尝试了以下解决方案,但失败了。

http://android-coding.blogspot.com/2011/06/reduce-bitmap-size-using.html

【问题讨论】:

  • “大小”是指图像大小还是文件大小?
  • 表示文件大小。

标签: java android firebase firebase-realtime-database google-cloud-platform


【解决方案1】:

是的,有一个 7 Mb 的图像,可以被认为是一个大尺寸的图像。正如@GokulNathKP 在他的回答中提到的那样,您可以在加载较大的图像时显示缩略图,但这不会解决与图像大小相关的问题。

因此,您最好的选择是从一开始就上传较小尺寸的图片。您可以使用不同的库调整它们的大小,以便最终存储大小合适的图像。通过这种方式,您可以更快地下载并减少支付费用。

【讨论】:

    【解决方案2】:

    也许您可以尝试加载缩略图,直到实际图像在后台加载,使用 Glide。

    示例代码:

    Glide.with(context).load("actual-url")
                        .placeholder(R.drawable.placeholder)
                        .thumbnail(0.3f) //Quality 0.1 - 1.0
                        .into(imageHolder);
    

    【讨论】:

      猜你喜欢
      • 2011-11-09
      • 1970-01-01
      • 1970-01-01
      • 2020-07-22
      • 2010-12-14
      • 2012-05-18
      • 1970-01-01
      • 2019-07-27
      • 1970-01-01
      相关资源
      最近更新 更多