-2

我是android新手,我只有一个关于drawable概念的查询:- “如果我把我项目的所有图像都放在一起——Drawable-hdpi、Drawable-mdpi、Drawable-ldpi,获取的图像是否会自动在屏幕尺寸和密度的基础”。或者在所有可绘制的图像中制作多个图像副本没有任何意义..??

4

3 回答 3

0

这个概念是这样的:Android 可以并且会根据屏幕尺寸和像素密度放大/缩小图像,但它可能并不完美,而且这个过程会消耗计算能力。如果您使用照片编辑程序正确地创建更小/更大的照片,就像您想要的那样,您将获得更好的结果,并且您会更快地获得它们。

于 2013-03-12T16:00:12.953 回答
0

http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources。链接中的 android 文档提供了有关为 drawable 提供替代资源的详细信息。

我还找到了一个链接,其中接受的答案对该主题有很好的解释。解释 drawable、drawable-ldpi、drawable-mdpi 和 drawable-hdpi 之间的区别

安卓系统根据屏幕大小和密度获取可绘制对象。如果您没有为每个密度提供特殊的可绘制对象,Android 将自动缩放最接近的可用对象。在某些设备上缩放可绘制对象可能看起来很奇怪。所以最好根据屏幕大小和密度提供不同的drawable。

于 2013-03-12T16:02:51.563 回答
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或类似的东西在屏幕上绘图,您可以在assets文件夹中制作一个图像副本并在绘制时拉伸到屏幕,并将您的图标存储在drawable文件夹中,根据方式不同有不同的方法你设计你的应用程序就是我想说的

于 2013-03-12T16:04:08.957 回答