【问题标题】:(Android) Resizing images with a transparent background?(Android)调整具有透明背景的图像大小?
【发布时间】:2026-02-18 12:30:02
【问题描述】:

我正在通过 API 获取图像,但问题是所有图像都是固定大小的,这样大图就可以了,因为它占据了整个空间,但是有些图片带有小物体,如图所示这里

image_large

我想知道是否有一种方法可以检测具有透明背景的图像是否可以调整为仅显示的大小,例如此处

image_small

我为此使用的库是 glide 从 URL 获取图像和 GifImageView 来保存图像。任何帮助将不胜感激。

【问题讨论】:

    标签: java android image background resize


    【解决方案1】:

    我认为 scalingtype 属性会有所帮助。 在 glide 中,有一个名为 apply() 的方法,您可以使用它来确定可以用来修改 imageView 的选项

    RequestOptions cropOptions = new RequestOptions().centerCrop(context); ... Glide.with(片段) .load(网址) .apply(cropOptions) .into(imageView); 您可以从 glide 库的文档中受益

    https://bumptech.github.io/glide/doc/options.html

    【讨论】:

    • 不幸的是,我已经尝试过了。问题是 Glide 将空的透明背景识别为图像的一部分,因此将其缩放到会使图像变得如此之小以至于我什么都看不到(可以在这里看到 i.imgur.com/474CTqH.png
    • 我认为问题出在图像本身,当我尝试将大图像设置为图标时遇到了类似的问题。您需要重构图像或编辑“viewportWidth”和“viewportHeight”
    • 是的,我已经说过问题在于图像。大框架中有一个小物体。 viewportWidth/Height 解决方案对我来说效果不佳,因为并非我从 API 请求的所有内容都将成为大框架中的小对象。除非我能找出如何动态地做到这一点?