我可以减小从 Firebase 带来的图像的大小吗?
Posted
技术标签:
【中文标题】我可以减小从 Firebase 带来的图像的大小吗?【英文标题】:Can I reduce the size of the image I bring from 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
【问题讨论】:
“大小”是指图像大小还是文件大小? 表示文件大小。 【参考方案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);
【讨论】:
以上是关于我可以减小从 Firebase 带来的图像的大小吗?的主要内容,如果未能解决你的问题,请参考以下文章
如何在将图像上传到 Firebase 存储之前对其进行压缩?