Android 以 dp 为单位的设备宽度
Android device width in dp
我缺乏开发 android 应用程序的经验。我决定将 dimensions.xml 分成 4 个配置限定符:default、sw480dp、sw600dp、sw800dp。我在哪里可以看到android 具有一定dp 屏幕宽度的设备的数量?
无法知道有多少设备具有某些显示方面,您只需要支持它,因为可能存在至少一个具有该方面的设备。
查看this article,在这里您可以找到一些您可能需要的信息。
编辑
你想支持多种屏幕尺寸,你可以这样做(我认为这是最好的方法,我使用它,它非常直观,我从来没有得到任何附带结果,如果有人认为这不好, 请告诉我):
- 您的项目包含一个名为 values 的文件夹,在其中创建一个名为 dimens.xml 的文件(可以是任何内容,名称无关紧要,这只是一个约定),然后在内部创建如下内容:
<dimen name="my_dimen">32dp</dimen>
- 32dp 将是所有屏幕尺寸的默认尺寸。以下是如何使用它的示例:
android:layout_width="@dimen/my_dimen"
假设您使用声明的尺寸来表示某些 img 尺寸,32dp 可能适合小屏幕,但对于大屏幕可能太小,您可以创建一个单独的文件,该文件将根据用户屏幕的大小具有不同的维度值,然后 Android OS 系统将为您选择最佳的。转到 res 文件夹(与 values 文件夹相同的文件夹),然后创建一个名为 values-hdpi[ 的文件夹=99=], values-xhdpi, values-xxhdpi 等等.
在每个文件夹中,创建相同的 dimens.xml 文件,并在每个文件上创建相同的 <dimen name="my_dimen">xxdp</dimen>
,其中 xx 可以是 40、50、100、1000,您可以设置任何符合您要求的值。
这是一个工作示例:
值 >> dimens.xml
<dimen name="margin_big">21dp</dimen>
值-hdpi >> dimens.xml
<dimen name="margin_big">28dp</dimen>
值-xhdpi >> dimens.xml
<dimen name="margin_big">40dp</dimen>
...
使用方法:
<!-- rest of code -->
android:layout_margin="@dimen/margin_big"
<!-- rest of code -->
这将如何工作:
我发布的文章告诉我们什么是 mdpi、hdpi 等,假设 Android 确定某些屏幕为 hdpi,OS 将转到 values-hdpi 并寻找名为 的维度margin_big,他找到了吗?取其价值,为所欲为。 OMG THERE IS NO margin_big
INSIDE VALUES-XHDPI (假设这是真的),没问题,忘了 values-hdpi 并找到 values 文件夹,这个文件夹必须包含独立于屏幕尺寸的所有默认数据,如果出现任何问题 android 会看这里为了他想要的。
PLUS
values-pt = 葡萄牙语设备的值。
values-jp = 日本设备等的值。
有关详细信息,请参阅 this article。
我缺乏开发 android 应用程序的经验。我决定将 dimensions.xml 分成 4 个配置限定符:default、sw480dp、sw600dp、sw800dp。我在哪里可以看到android 具有一定dp 屏幕宽度的设备的数量?
无法知道有多少设备具有某些显示方面,您只需要支持它,因为可能存在至少一个具有该方面的设备。
查看this article,在这里您可以找到一些您可能需要的信息。
编辑
你想支持多种屏幕尺寸,你可以这样做(我认为这是最好的方法,我使用它,它非常直观,我从来没有得到任何附带结果,如果有人认为这不好, 请告诉我):
- 您的项目包含一个名为 values 的文件夹,在其中创建一个名为 dimens.xml 的文件(可以是任何内容,名称无关紧要,这只是一个约定),然后在内部创建如下内容:
<dimen name="my_dimen">32dp</dimen>
- 32dp 将是所有屏幕尺寸的默认尺寸。以下是如何使用它的示例:
android:layout_width="@dimen/my_dimen"
假设您使用声明的尺寸来表示某些 img 尺寸,32dp 可能适合小屏幕,但对于大屏幕可能太小,您可以创建一个单独的文件,该文件将根据用户屏幕的大小具有不同的维度值,然后 Android OS 系统将为您选择最佳的。转到 res 文件夹(与 values 文件夹相同的文件夹),然后创建一个名为 values-hdpi[ 的文件夹=99=], values-xhdpi, values-xxhdpi 等等.
在每个文件夹中,创建相同的 dimens.xml 文件,并在每个文件上创建相同的
<dimen name="my_dimen">xxdp</dimen>
,其中 xx 可以是 40、50、100、1000,您可以设置任何符合您要求的值。
这是一个工作示例:
值 >> dimens.xml
<dimen name="margin_big">21dp</dimen>
值-hdpi >> dimens.xml
<dimen name="margin_big">28dp</dimen>
值-xhdpi >> dimens.xml
<dimen name="margin_big">40dp</dimen>
...
使用方法:
<!-- rest of code -->
android:layout_margin="@dimen/margin_big"
<!-- rest of code -->
这将如何工作:
我发布的文章告诉我们什么是 mdpi、hdpi 等,假设 Android 确定某些屏幕为 hdpi,OS 将转到 values-hdpi 并寻找名为 的维度margin_big,他找到了吗?取其价值,为所欲为。 OMG THERE IS NO margin_big
INSIDE VALUES-XHDPI (假设这是真的),没问题,忘了 values-hdpi 并找到 values 文件夹,这个文件夹必须包含独立于屏幕尺寸的所有默认数据,如果出现任何问题 android 会看这里为了他想要的。
PLUS
values-pt = 葡萄牙语设备的值。 values-jp = 日本设备等的值。
有关详细信息,请参阅 this article。