【问题标题】:android screen resolutions and sizes安卓屏幕分辨率和尺寸
【发布时间】:2010-10-26 19:48:34
【问题描述】:

我目前正在开发一个给我带来麻烦的 Android 应用程序。我的应用程序严重依赖于正确安装到它们正在显示的屏幕上的图像。不幸的是,诸如 FWVGA/WVGA 分辨率差异 854 与 800 之类的东西给我带来了一些真正的问题,除了其他尺寸/密度和分辨率之外。

我不知道我是否只是错过了这里的要点,但是我如何才能让我的应用程序在两种分辨率上都正确显示,而不会“挤压”我的图像或切断给我黑条等的位?

似乎没有一个立即可用的解决方案,我可以让它自动从右侧屏幕的可绘制文件夹中显示不同的图像。

我曾尝试使用 displaymetrics,但除非我有我的清单声称它支持所有屏幕尺寸,否则 Android 操作系统实际上会对我的应用“撒谎”关于当前分辨率。

请告诉我有一个简单的解决方案。

【问题讨论】:

    标签: android screen resolution


    【解决方案1】:

    如何让我的应用程序在两种分辨率下都正确显示,而不会“挤压”我的图像或剪掉一些黑条等?

    恕我直言,您首先要重新审视您的 GUI 设计:

    我的应用在很大程度上依赖于正确适配屏幕的图像。

    恕我直言,这在任何地方都不是特别有效。例如,Windows(包括浏览器)的大小可以由用户调整为任何所需的大小。

    似乎没有立即出现的解决方案,我可以让它自动从右侧屏幕的可绘制文件夹中显示不同的图像。

    因为 Android 设备可以有任意数量的屏幕尺寸,就像窗口和 Web 浏览器可以有任意数量的屏幕尺寸一样。 Android 确实允许您根据密度(例如,-hdpi)或屏幕尺寸(例如,-large)选择图像,但这些不映射到分辨率,也不应该映射到分辨率。

    【讨论】:

    • 我们今天在团队中进行了同样的讨论,PC(Mac 等)上的窗口是可调整大小的,但在手机上却不是,这对我们应用程序的功能至关重要图像以正确的尺寸显示,以最大化屏幕空间,而不会裁剪或破坏图像的外观。所以考虑到你的论点,我该如何解决这个问题?
    • @Hamid:如果您的图像是可拉伸的,请将它们制作成九个补丁的 PNG 文件。
    • 不幸的是,它们本质上是“照片”,屏幕上没有其他内容。我不能 9 修补它们,因为,正如我所说。然而,这些“照片”是由我们预先渲染的(不是在运行时),如何能够以这样一种方式分离图像的每个“主题”,以便我们可以在运行时定位它们以使其看起来正确,而不管屏幕大小或尺寸?
    • @Hamid:你想要的在数学上是不可能的。
    • 感谢您的回答。我想我们已经达成了解决方案。
    【解决方案2】:

    正如 CommonsWare 所指出的,对于这种情况,您最好的选择确实是重新考虑您的布局结构。使用RelativeLayouts 和小部件可能会实现与您当前拥有的结果相似(如果不完全相同)的结果。如果您愿意发布样本,我们可以建议您这样做的方法。

    也就是说,您的问题的答案是在运行时查询设备的屏幕分辨率(请记住通知栏和标题栏占用的空间 - 除非您在没有标题栏的情况下为其设置主题)。对于每种可能的屏幕分辨率,您都需要不同的图像,并且随着越来越多的设备(尤其是平板电脑)开始发布,您将不得不在发布时继续为每个不同的图像提供更多图像和自定义代码。你可以看到为什么这不是一个理想的情况。

    DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);
    int screenWidth = metrics.widthPixels();
    int screenHeight = metrics.heightPixels();
    

    然后您可以将其放入 if-then-else 块中,并确定分辨率,并相应地设置图像。我不推荐这个。

    【讨论】:

    • 我今天使用这种方法实现了一些东西,但正如您所说,平板电脑和未来(未知)的屏幕分辨率是我们关心的问题。该应用程序是全屏的,所以我想分离我们图像的每个元素以便它们独立于分辨率可能是唯一的解决方案。
    【解决方案3】:

    在显示和分辨率方面,如果不压缩/拉伸图像或使用信箱,就不可能将图像调整为任何宽高比。我知道这并不能真正回答您的问题,但如果您无法从操作系统获得可靠的屏幕尺寸信息,请尝试选择最大分辨率的图像并裁剪它们以获得较小的分辨率。只要确保边界周围没有任何有趣的东西。

    【讨论】:

    • 这给我们带来了一个大问题,因为我们的内容要求所有图像都是可观看的并且在正确的方面。我正在理解你的观点,但我仍然没有看到解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-15
    • 1970-01-01
    • 2011-09-08
    相关资源
    最近更新 更多