2013-03-12 104 views
-2

我是新来的android和我只有一个查询有关可绘制的概念: - “如果我把我的项目的所有图像全部 - Drawable-hdpi,Drawable-mdpi,Drawable-ldpi做图像提取将根据屏幕尺寸和密度自动完成“。 或者它没有任何意义使所有绘图的图像的多个副本.. ??可绘制的概念问题

+1

Android会自动做到这一点,否则为什么我会甚至不提供这样的概念? – SudoRahul 2013-03-12 15:58:31

回答

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

绘图是由android根据屏幕大小和密度提取的。 如果您没有为每个密度提供特殊的drawable,Android会自动缩放最近的一个。缩放某些设备上的绘图可能看起来很奇怪。所以最好根据屏幕尺寸和密度提供不同的绘图。

0

概念是这样的: Android可以根据屏幕大小和像素密度对图像进行放大/缩小,但它可能并不完美,而且这个过程耗费了计算能力。 如果您正在使用照片编辑程序来创建较小/较大的照片正确就像您希望它看起来一样,您将获得更好的效果,并且您可以更快地获得它们。

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或类似的东西绘制屏幕,​​您可以在资产文件夹中制作一个图像副本,并在绘制时拉伸到屏幕,然后将图标存储在可绘制文件夹中,这取决于如何使用不同方法你设计你的应用程序是什么即时通讯试图说