我可以减小从 firebase 带来的图像的大小吗?

Can I reduce the size of the image I bring from firebase?

从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

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

示例代码:

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

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

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