繁体   English   中英

Android:在GridView中按比例放大ImageView的宽度

[英]Android: Scale up width of ImageView in GridView

在我的应用程序中,我在运行时生成了一堆位图以显示在GridView中。 生成的位图仅由矩形和大约五种不同的颜色组成。

如果我将它们变大,它们会按比例缩小,但是会出现OutOfMemoryExceptions。 但是,当我将它们缩小时,它们并没有按比例增大以适合列宽。 我认为ImageView无法帮我,因为它不知道最后一栏。 在GridView中将stretchMode设置为columnWidth并没有帮助。

在ImageView上将adjustViewBounds设置为true有助于使用较大的位图,但对放大没有帮助。

是否可以将带有基础位图的ImageView缩放到GridView的最大列宽? 这将是我的首选解决方案。

如果不是,是否可以预先确定GridView的columnWidth以便相应地生成位图? (我不太喜欢这种解决方案,因为我怀疑在大屏幕设备上,我可能会再次遇到OutOfMemoryExceptions。)

您有两种选择。

方法1:

通过使用任何在线图像压缩站点来优化您的图像。 例如https://tinypng.com .TinyPNG使用智能有损压缩技术来减小PNG文件的文件大小。 通过有选择地减少图像中的颜色数量,需要较少的字节来存储数据。 效果几乎是看不见的,但文件大小却有很大差异!

方法2:

使用第三方库(例如Universal Image LoaderGlide等)加载图像。这些库旨在为图像加载,缓存和显示提供强大,灵活且高度可定制的工具。 它提供了许多配置选项,并且可以很好地控制图像加载和缓存过程。

由于您是在应用中生成位图的,因此可以使用像Picasso这样的库来显示它们。 毕加索将代表您处理内存,您无需担心OutOfMemory异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM