Android设备宽度以dp为单位

时间:2015-07-25 21:52:15

标签: android layout dimension

我缺乏开发Android应用程序的经验。我决定将dimension.xml分成4个配置限定符:default,sw480dp,sw600dp,sw800dp。在哪里可以看到dp中具有特定屏幕宽度的Android设备的数量?

1 个答案:

答案 0 :(得分:0)

无法知道有多少设备具有某些显示方面,您只需支持它,因为至少有一台设备可能存在这些方面。

检查this article,在这里您可以找到您可能需要的一些信息。

修改

你想支持多种屏幕尺寸,你可以做如下(我认为这是最好的方法,我使用它,它非常直观,我从来没有得到任何结果,如果有人认为这不好,请让我知道):

  • 您的项目包含一个名为 values 的文件夹,在其中创建一个名为 dimens.xml 的文件(可以是任何内容,名称无关紧要,它只是一个惯例)然后,在里面,创建这样的东西:
  

<dimen name="my_dimen">32dp</dimen>

  • 32dp将是所有屏幕尺寸的默认尺寸。以下是如何使用它的示例:
  

android:layout_width="@dimen/my_dimen"

  • 让我们说你使用你声明的尺寸表示一些img大小, 32dp 可能对小屏幕有好处,但对于大屏幕可能太小,你可以创建一个单独的文件根据用户屏幕的大小,它将具有不同的维度值,然后Android OS系统将为您挑选最佳。转到 res 文件夹(存在文件夹的文件夹),然后创建一个名为 values-hdpi 的文件夹,值-xhdpi values-xxhdpi 等等。

  • 在每个文件夹中,创建相同的 dimens.xml 文件,并在每个文件上创建相同的<dimen name="my_dimen">xxdp</dimen>,其中 xx 可以是40, 50,100,1000,您可以设置任何符合您要求的值。

以下是一个工作示例:

值&gt;&gt; dimens.xml

<dimen name="margin_big">21dp</dimen>

values-hdpi&gt;&gt; dimens.xml

<dimen name="margin_big">28dp</dimen>

values-xhdpi&gt;&gt; dimens.xml

<dimen name="margin_big">40dp</dimen>

<强> ...

如何使用

<!-- rest of code -->
android:layout_margin="@dimen/margin_big"
<!-- rest of code -->

这将如何运作:

我发布的文章告诉我们什么是 mdpi hdpi 等,让我们说Android确定某些屏幕为 hdpi ,操作系统将转到 values-hdpi 并寻找一个名为 margin_big 的维度,他找到了吗?抓住它的价值,做任何与它有关的事情。 OMG那里没有margin_big INSIDE VALUES-XHDPI (让我们想象这是真的),没问题,忘了 values-hdpi 和去文件夹,这个文件夹必须包含与屏幕大小相关的所有默认数据,如果出现任何问题,android会在这里找到他想要的内容。

<强> PLUS

values-pt =葡萄牙语设备的值。 values-jp =日本设备的值等等。

有关详细信息,请参阅this article