Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在所有设备中找到大小相同的合适dp_Android_User Interface_Size_Pixel Density - Fatal编程技术网

Android 在所有设备中找到大小相同的合适dp

Android 在所有设备中找到大小相同的合适dp,android,user-interface,size,pixel-density,Android,User Interface,Size,Pixel Density,如您所知,如果将尺寸和大小放入dp中,所有设备中的尺寸和大小几乎相同。我说几乎是因为桶的范围。例如,在以240dpi进行预网的hdpi中,200dpi和279dpi的设备都使用hdpi资源和dimens文件夹,并且像素大小相同 px=dp*(dpi/160) 例如,在第一个设备(200dpi)中,300dp大小的对象将为(dp/dpi=英寸)300/200=1.5英寸,而在另一个设备中,它将为300/279=1.07英寸。(279dpi设备)所以,正如您所看到的,高端和高端hdpi之间的差异太

如您所知,如果将尺寸和大小放入dp中,所有设备中的尺寸和大小几乎相同。我说几乎是因为桶的范围。例如,在以240dpi进行预网的hdpi中,200dpi和279dpi的设备都使用hdpi资源和dimens文件夹,并且像素大小相同

px=dp*(dpi/160)

例如,在第一个设备(200dpi)中,300dp大小的对象将为(dp/dpi=英寸)300/200=1.5英寸,而在另一个设备中,它将为300/279=1.07英寸。(279dpi设备)所以,正如您所看到的,高端和高端hdpi之间的差异太大,您的UI不仅仅是英寸

好的,我发现解决这个问题的最佳解决方案是使用sw将bucket划分为更具体的值,并为每个bucket范围更改dimens.xml中的dp大小。但我不知道如何划分桶,第二,如何为他们创造价值

问题是此文件夹的正确文件夹范围是什么?为实现这一目标,划分软件大小的最佳实践是什么。(sw160、sw320、sw480或什么?)以及如何为尺寸增加值

更新

一些朋友说为什么你不使用in来代替dp,这是我的答案:

  • Android使用相同的公式获取英寸(屏幕分辨率/dpi=inch),因此问题是相同的,并非所有设备都是如此
  • Android告诉我们不推荐使用英寸、毫米和厘米

  • 我在这个环节也提出了类似的要求。Play store应用程序在不同dpi的所有设备上显示相同的方式。

    我在这个链接中也提出了类似的要求。Play store应用程序在不同dpi的所有设备上显示相同的方式。

    因此不要使用
    dp
    300dp
    ),使用:
    pt
    mm
    in
    我有点困惑。软件文件夹的相关性是什么?您可以使用像素密度范围很大的sw480设备,比hdpi文件夹中的像素密度要大得多。@pskink那么我们为什么要使用dp呢?我们使用dp,因为160dp在所有设备中几乎都是一英寸。如果您想要正好一英寸,请使用
    1in
    72pt
    或(更多或更少)
    25mm
    @TedHopp,我想使用sw文件夹,因为它们为我们提供了更详细的范围,您可以随时输入所需的宽度,因此,我们可以将dimens.xml放在许多手机尺寸上,最终使相同尺寸的手机更加精确。因此,不要使用
    dp
    300dp
    ),使用:
    pt
    mm
    in
    我有点困惑。软件文件夹的相关性是什么?您可以使用像素密度范围很大的sw480设备,比hdpi文件夹中的像素密度要大得多。@pskink那么我们为什么要使用dp呢?我们使用dp,因为160dp在所有设备中几乎都是一英寸。如果您想要正好一英寸,请使用
    1in
    72pt
    或(更多或更少)
    25mm
    @TedHopp,我想使用sw文件夹,因为它们为我们提供了更详细的范围,您可以随时输入所需的宽度,因此,我们可以将dimens.xml用于多种手机尺寸,最终使相同尺寸的手机更加精确。