首页 > 解决方案 > 我应该在哪里专注于支持所有 100% 的手机和平板电脑,而忽略它们的屏幕尺寸或密度?

问题描述

我想支持所有 100% 的手机和平板电脑,不想错过任何一台设备或任何 android 版本,但要这样做

我应该在哪里关注屏幕密度或屏幕尺寸(分辨率)?

我在这里阅读了许多与支持不同屏幕尺寸相关的答案,有些正在详细说明屏幕密度,但似乎每个人都是对的。

到目前为止我清楚的一件事是支持所有密度,我们应该在这些文件夹中提供所有密度的图形

drawable
drawable-ldpi
drawable-mdpi
drawable-hdpi
drawable-xhdpi
drawable-xxhdpi
drawable-xxxhdpi

我应该dimens.xml在每个应用程序中一直使用所有这些值文件夹来支持所有设备吗?

values
values-small
values-large
values-xlarge
values-sw600dp
values-sw720dp
values-w600dp
values-w720dp
values-v11
values-v14
values-v15
values-v16
values-v21
values-sw820dp
values-w820dp

我应该在每个应用程序中一直使用所有这些布局文件夹中的布局文件来支持所有设备吗activity_main.xmlcontent_main.xml

layout
layout-small
layout-large
layout-xlarge
layout-sw600dp
layout-sw720dp
layout-w600dp
layout-w720dp
layout-v11
layout-v14
layout-v15
layout-v16
layout-v21
layout-sw820dp
layout-w820dp

仅支持所有 100% 设备的最佳实践或最佳方法是什么?

我搜索了很多,并在官方 android 开发者网站和堆栈溢出上找到了许多支持多屏幕和多密度指南,我仍然像 android 开发领域的许多其他初学者一样感到困惑,并寻找专业的最佳方法。

<supports-screens  android:smallScreens="true"/>
 <supports-screens  android:normalScreens="true"/>
  <supports-screens android:largeScreens="true"/>
  <supports-screens android:anyDensity="true"/>
  <supports-screens android:resizeable="true"
  android:anyDensity="true" />

我应该只使用清单中的元素来支持所有屏幕吗?还是必须与可绘制文件夹或布局文件夹组合使用?

标签: javaandroidandroid-layoutkotlinscreen-size

解决方案


不,您不需要为每个密度添加每个文件夹。Android 会自动选择与您定义的文件夹最近(最相似)的文件夹。所以即使你只定义了 values.xml & values-sw600dp.xml,在宽度为 900dp 的设备中,将使用 values-ws600dp 中定义的值,在宽度为 500dp 的设备中,将使用 values.xml。(sw代表最小宽度)


推荐阅读