我缺乏开发Android应用程序的经验。我决定将dimension.xml分成4个配置限定符:default,sw480dp,sw600dp,sw800dp。在哪里可以看到dp中具有特定屏幕宽度的Android设备的数量?
答案 0 :(得分:0)
无法知道有多少设备具有某些显示方面,您只需支持它,因为至少有一台设备可能存在这些方面。
检查this article,在这里您可以找到您可能需要的一些信息。
修改
你想支持多种屏幕尺寸,你可以做如下(我认为这是最好的方法,我使用它,它非常直观,我从来没有得到任何结果,如果有人认为这不好,请让我知道):
<dimen name="my_dimen">32dp</dimen>
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。