我是Android新手,我只有一个关于drawable概念的查询: - “如果我把我项目的所有图像全部放入 - Drawable-hdpi,Drawable-mdpi,Drawable-ldpi可以获取图像将根据屏幕尺寸和密度“自动完成。 或者在所有可绘制的图像中制作多个图像副本没有任何意义。??
答案 0 :(得分:0)
这个概念是这样的: Android可以并将根据屏幕尺寸和像素密度对图像进行放大/缩小,但它可能并不完美,而且这个过程会耗费计算能力。 如果您正在使用照片编辑程序来创建更小/更大的照片正确,就像您希望它看起来一样,您将获得更好的效果,并且您可以更快地获得它们。
答案 1 :(得分:0)
http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources。链接中的android文档提供了有关为drawable提供备用资源的详细信息。
我还找到了一个链接,其中接受的答案对该主题有一个很好的解释。Explain the difference between drawable, drawable-ldpi, drawable-mdpi and drawable-hdpi。
Drawables由android根据屏幕大小和密度提取。 如果您不为每个密度提供特殊的drawable,Android将自动缩放最接近的一个。缩放某些设备上的drawable可能看起来很奇怪。因此,最好根据屏幕尺寸和密度提供不同的绘图。
答案 2 :(得分:0)
是的,根据它们将被提取的屏幕大小,它是如何工作的,图形资产有不同的方法取决于你如何设计你的应用程序,这里是不同文件夹的计算:
xlarge screens are at least 960dp x 720dp
large screens are at least 640dp x 480dp
normal screens are at least 470dp x 320dp
small screens are at least 426dp x 320dp
Generalised Dpi values for screens:
ldpi Resources for low-density (ldpi) screens (~120dpi)
mdpi Resources for medium-density (mdpi) screens (~160dpi). (This is the baseline density.)
hdpi Resources for high-density (hdpi) screens (~240dpi).
xhdpi Resources for extra high-density (xhdpi) screens (~320dpi).
Therefore generalised size of your resources (assuming they are full screen):
ldpi
Vertical = 426 * 120 / 160 = 319.5px
Horizontal = 320 * 120 / 160 = 240px
mdpi
Vertical = 470 * 160 / 160 = 470px
Horizontal = 320 * 160 / 160 = 320px
hdpi
Vertical = 640 * 240 / 160 = 960px
Horizontal = 480 * 240 / 160 = 720px
xhdpi
Vertical = 960 * 320 / 160 = 1920px
Horizontal = 720 * 320 / 160 = 1440px
px = dp*dpi/160
如果您使用opengl或surfaceview等绘图到屏幕,您可以在资源文件夹中制作一个图像副本并在绘制时拉伸到屏幕,并将图标存储在可绘制文件夹中,这是不同的方法取决于你如何设计你的应用程序是我试图说的