在Android设备上确定各种屏幕尺寸的DP

时间:2015-06-22 05:35:38

标签: android android-layout multiscreen

在Android应用程序中,我们为各种屏幕分辨率维护dimen.xml。比方说,我使用设备X作为基础开发设备,并定义相对于设备X的dimen.xml。现在,如果我想知道对于不同密度设备将对应的dimen.xml,可以遵循哪些过程/策略? 例如: 如果我在dimen.xml中define margin_10 as 10dp。根据密度类型(hdpi,xhdpi,xxhdpi,xxxhdpi),margin_10对不同的dimen.xml有什么价值? 感谢

2 个答案:

答案 0 :(得分:0)

由于您要以dp为单位定义尺寸,因此您无需担心为其他分辨率提供多种尺寸。

来自开发者文档:

  

dp是与密度无关的像素,对应于160 dpi像素的物理尺寸。

     

与密度无关的像素相当于160 dpi屏幕上的一个物理像素,这是系统为“中等”密度屏幕假定的基线密度。在运行时,系统根据使用的屏幕的实际密度,根据需要透明地处理dp单元的任何缩放。 dp单位到屏幕像素的转换很简单:px = dp *(dpi / 160)。例如,在240 dpi屏幕上,1 dp等于1.5个物理像素。在定义应用程序的UI时,应始终使用dp单位,以确保在不同密度的屏幕上正确显示UI。

这是为各种密度提供的图像资源或位图

  

要生成图像,您应该以矢量格式开始使用原始资源,并使用以下大小比例为每个密度生成图像:

  • xhdpi:2.0
  • hdpi:1.5
  • mdpi:1.0(基线)
  • ldpi:0.75

希望这有帮助。

答案 1 :(得分:0)

    values folder containing dimens.xml file in which whatever screen size you 
    specified, it is consider as baseline as per google doc means 10dpx1 as per your question..
    now you set this size for different devices than procedure is like following.. create folder for different Screen Size
   1) values->dimens.xml [default as per base line hdpi] 10dp x 1.0
   2) values_sw320dp ->dimens.xml [xhdpi] 10dp x 1.5 result set to dimens.xml file of values_sw320dp folder
   3) values_sw480dp -> dimens.xml [for xxhdpi] 10dp x 2.0 result set to dimens.xml file of values_sw480dp folder
   4) values_sw640dp -> dimens.xml [for xxxhdpi] 10dp x 2.5 result set to dimens.xml file of values_sw640dp folder as like you can set size for all devices as per google document..
    here you just need to create folder and inside folder create dimens.xml file for working with different screen size in android.