我正在开发一款应用,在推出时会从网上下载图片并将其显示在主要活动上。
我担心的是此图片在具有不同屏幕密度的设备上的大小。
例如:假设我正在下载400x200像素的图片。它会在Galaxy S(480x800 res)和Galaxy S3(1280x720 res)上显示400x200,还是会在Galaxy S3上调整为更大尺寸?
有关其工作原理以及如何在处理下载的图像时与不同屏幕兼容的任何提示?
非常感谢。
答案 0 :(得分:1)
除非网站做了一些花哨的用户代理切换,为所请求的图像提供不同的分辨率,否则图像文件应该是相同的。但是,在显示图像时,它将调整大小以适合屏幕(例如,如果在ImageView中缩放)。由于设备之间的内存限制不同,如果您检索到的图像未进行下采样,则在显示时可能会遇到内存不足错误(文件大小保持不变,它只是内存大小,这是问题所在)。
答案 1 :(得分:1)
假设您在ImageView中显示图像,您真的需要关注以下几点:
ImageView上的layout_width / layout_height和scaleType设置。
Android将根据这些设置处理升级/缩减。
如果需要,您可以动态调整宽度/高度。使用类似于以下的代码:
// banner image layout adjustment
LayoutParams lp = mImageView.getLayoutParams();
lp.width = mImageView.getDrawable().getIntrinsicWidth() ;
lp.height = mImageView.getDrawable().getIntrinsicHeight() ;
mImageView.setLayoutParams(lp);
但要小心谨慎,以便将此视图保留在某些预定义范围内...例如设备屏幕宽度/高度。