我尝试使用与屏幕高度相同的图片进行活动。我尝试了简单的路线,只是使用一个非常大的图像,然后在应用程序中缩小它,但是当我在一个屏幕较小的设备上运行它时,我得到一个错误,说设备内存不足。我希望为每个dpi制作几个可绘制的文件夹(drawable-mdpi,drawable-hdpi等)。我查看了启动画面的像素尺寸,但是当我调整图像大小以适应这些尺寸(https://stackoverflow.com/a/15744389/5909429)时,图像仅填充了我的较小设备上大约一半的屏幕。
我应该使用哪些尺寸,或者我使用可绘制文件夹错误了?
答案 0 :(得分:2)
[...]或者我使用drawable文件夹错了吗?
是和否。我不知道任何"完美"您的图片尺寸的值,我怀疑有没有,因为有太多不同的手机需要支持。
使用dpi可确保所有内容具有相同的大小。如果您要在xxxhdpi和ldpi设备上的屏幕上放置标尺,则两张图片的大小相同。这是dpi。
您要做的是填写手机屏幕。这与dpi没什么关系,但与屏幕的实际像素大小有关。如果您有1920x1080手机显示屏,则需要具有相同分辨率的图像。这不说出关于dpi或屏幕密度的任何内容,它坦率地与它无关。
要正确缩小图像 - 而不是运行到OOM中 - 您可以使用指定的图像加载库,如Glide或Picasso,或者您可以查看BitmapFactory
,它可以让您提供{ {1}}以自己需要的大小加载图片。官方文档可以在Loading large bitmaps efficiently找到。