android - 如何找到所有可用 Android 手机的最小和最大屏幕高度/宽度比?

标签 android android-layout

我希望我的应用程序能够在任何 Android 设备上正确显示,无论屏幕尺寸、屏幕密度或屏幕高宽比如何。我想支持与 API 8 一样古老的 Android 设备。我可以为纵向、横向和超大屏幕创建单独的布局,但除此之外,我不想为不同的密度或屏幕尺寸创建不同的布局。

我已在 supporting multiple screens 上阅读了 Android 指南.我尝试遵循这些准则,例如,对于小部件,我将它们的高度和宽度设置为 wrap_content 或 fill_parent,并且我避免使用特定的像素测量值。对于图像,我为不同的密度提供了替代位图资源,或者有时我使用具有与密度无关的像素(倾斜)的特定尺寸,因此系统将在具有不同密度的屏幕上正确调整尺寸。

在过去的 2 年里,我可能已经阅读了该指南数十遍。

我知道我可以为特定的屏幕尺寸和密度定义特定的资源(例如布局),但我想支持几十或数百种手机,所以这似乎是徒劳的。我在 that guide 中看到表 3显示了屏幕的一些常见尺寸,但我想确保我的应用程序几乎可以在每部手机上运行。

在我看来,我需要知道的是最窄的屏幕(dip)和最短的屏幕。也就是说,我想知道高度与宽度的比率。

例如,在纵向方向上,也许我有一个按钮列表或其他小部件。我真的很想知道哪部手机最短:宽高比最大,所以我可以看看我的布局是否在底部被截断。也许我还有 3 个选项卡:我想知道最窄的屏幕,这样我就可以确保选项卡没有在右侧被切断。

如果我知道所有当前 Android 手机的最小和最大 h/w 比率,对于纵向我可以仅在两个 Android 虚拟设备(或者甚至只是 Eclipse 中的自定义屏幕)上进行测试。

我已经开始检查Wikipedia’s list of Android devices ,但必须有人有更好的方法。

最佳答案

不幸的是,我还没有找到。我有这个链接:List of displays by pixel density但并非所有都是 Android 设备。我知道有一些奇怪的设备具有方形屏幕比例(摩托罗拉)。但我只会坚持 Google's screen sizes list对于 99.9% 的用户,您应该是安全的。

编辑 1:stats about screen sizes and densities

Edit2:根据我的经验,我通常会进行 5 次快速检查:

  1. 16:9 比例的 HDPI 手机上的应用
  2. 4:3 比例的 MDPI 手机上的应用
  3. XHDPI 手机上的应用
  4. LDPI 手机上的应用
  5. 大屏幕平板电脑上的应用(通常是 MDPI)

我觉得这 5 个案例涵盖了所有屏幕密度(特别是检查图像尺寸)、最常见的屏幕比例(4:3 和 16:9,以检查所有布局元素是否可访问),以及两个最常见的屏幕尺寸(手机和平板电脑)。

关于android - 如何找到所有可用 Android 手机的最小和最大屏幕高度/宽度比?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12820831/

相关文章:

Android 将字节数组从 Camera API 转换为颜色 Mat 对象 openCV

android - FFmpeg - 我如何获得打开 ALAC 编解码器所需的额外数据?

android取消扬声器输出。消除电话反馈

android - 在 Android 中更改自定义搜索栏的宽度

android - Tabcontent 应始终与 RelativeLayout 对齐

java - 这个 View 不受android studio的限制。即使使用推断约束我也看不到按钮

java - android studio 上没有渲染

java - 安卓Java : Get Response Body from HttpUrlConnection

android - TabLayout 选项卡文本颜色状态列表

android - 如何在 Android 弹出菜单中设置默认选择的选项?