Android 调整列表中图像的大小

Android 调整列表中图像的大小,android,listview,image-scaling,Android,Listview,Image Scaling,我有一组图像显示在列表视图中(每行一个)。我拥有的图像文件的分辨率相当大,因此我需要将其缩小以显示在列表视图中 所以,我的问题是…存储两个图像(一个普通图像和一个缩略图)是否更快,这样就不需要动态缩放,或者干脆让android在创建列表时缩放这个更大的图像是否更快 谢谢! 尼克(Nick)存储两张图像,以避免您的用户不得不等待获取每张图像的完整尺寸,即使他们看到的只是缩略图,除非这些图像与应用程序捆绑在一起(即不是即时下载)。最佳方法取决于您的特定用例。如果您确实希望将图像大小调整为缩略图级别(

我有一组图像显示在列表视图中(每行一个)。我拥有的图像文件的分辨率相当大,因此我需要将其缩小以显示在列表视图中

所以,我的问题是…存储两个图像(一个普通图像和一个缩略图)是否更快,这样就不需要动态缩放,或者干脆让android在创建列表时缩放这个更大的图像是否更快

谢谢!
尼克(Nick)

存储两张图像,以避免您的用户不得不等待获取每张图像的完整尺寸,即使他们看到的只是缩略图,除非这些图像与应用程序捆绑在一起(即不是即时下载)。

最佳方法取决于您的特定用例。如果您确实希望将图像大小调整为缩略图级别(例如150x150),并且不打算显示超过30个图像,那么最好的方法是将位图缓存在内存中,而不将其写入磁盘(30个图像的内存成本约为3 MB)。这样,当您在屏幕上滚动图像时,ListView就不会结巴。当然,您可以保留完整版本,并在用户点击ListView项时显示该版本


如果您想在ListView中显示更高分辨率的版本,那么您可能需要发挥创意。请记住,您没有太多时间渲染每个单独的ListView单元格以保持平滑的滚动体验,而且解码大型图像文件将需要时间,即使您正在对其进行下采样和调整大小;初始解码时间相同,唯一的区别是内存中的大小。在这种情况下,可以方便地将原始版本和较小的版本都保存在磁盘中,以减少滚动时的口吃。

一个想法:您想知道目标的分辨率是多少,然后在服务器上根据需要预调整图像的大小。图像是从不是我们的服务器上提取的,因此不幸的是,这不是我们的服务器选择权。同意。除了等待,还有一个代价:用户可能是在移动数据计划上,或者是受流量的限制,或者是付费的。事实上,我在想,但忘了写进去。谢谢。大的初始图像将在后台下载。图像下载步骤只执行一次,因此您现在可以将其从等式中去掉。可能会有数千张图像,因此在此列表中是否值得使用较小的图像,以便在列表设置中不涉及缩放,或者让android自动缩小图像?(同样,假设所有图像都与应用程序捆绑在一起)