跳到主要内容

简述如果把drawable-xxhdpi下的图片移动到drawable-xhdpi下,图片内存是如何变的 ?

参考答案:

drawable-xxhdpi 下的图片移动到 drawable-xhdpi 下,图片本身的像素数据不会改变,但Android系统在加载图片时会根据图片的密度和屏幕的密度来选择合适的图片资源。这个过程涉及到Android的密度无关像素(dp)和屏幕密度(dpi)的概念。

首先,让我们了解几个基本的密度概念:

  • ldpi (Low Density): 约120 dpi
  • mdpi (Medium Density): 约160 dpi
  • hdpi (High Density): 约240 dpi
  • xhdpi (Extra High Density): 约320 dpi
  • xxhdpi (Extra Extra High Density): 约480 dpi
  • xxxhdpi (Extra Extra Extra High Density): 约640 dpi

Android系统会根据屏幕的dpi选择合适的图片资源。例如,如果一个设备是xhdpi密度,系统会首先查找drawable-xhdpi目录下的图片资源。如果没有找到,它会回退到drawable-hdpi,然后是drawable-mdpi,以此类推。

现在,假设你有一个xxhdpi密度的图片,你把它移动到了xhdpi目录下。当这个图片在一个xxhdpi密度的设备上显示时,系统首先会在drawable-xxhdpi目录下查找,但找不到图片(因为你已经把它移走了)。然后,系统会回退到drawable-xhdpi并找到这个图片。

由于这个图片是为xxhdpi密度设计的,当它在xhdpi密度的设备上显示时,它可能会被缩放,以适应xhdpi的密度。这可能会导致图片看起来模糊或失真,因为系统需要对其进行缩放以适应屏幕的密度。

至于内存方面,图片本身占用的内存不会改变,因为图片的数据没有变。但是,如果图片在屏幕上显示时需要被缩放,那么处理这个缩放过程可能会增加一些额外的CPU和内存负担。

总结来说,将drawable-xxhdpi下的图片移动到drawable-xhdpi下可能会导致图片在某些设备上显示模糊或失真,并可能增加一些额外的CPU和内存负担。为了保持图片的质量和性能,最好为每个密度级别提供适当的图片资源。