【问题标题】:Android Scaling for Multiple Resolution Screens多分辨率屏幕的 Android 缩放
【发布时间】:2014-09-26 05:58:35
【问题描述】:

我正在开发一个 Android 应用程序,其中服务器发送与 1920*1080 分辨率设备的像素尺寸对应的所有值。我需要该应用程序支持多种屏幕分辨率。我浏览了有关支持多种屏幕分辨率的 Android 文档.它建议将像素转换为倾角然后渲染。我在我的应用程序中这样做了,但视图没有按要求渲染。所以我尝试通过动态获取屏幕宽度和高度然后根据当前缩放所有尺寸来应用简单的单一方法屏幕宽度和高度。 假设我当前的屏幕宽度是 X,高度是 Y。所以我所做的是 水平方向的缩放因子 = 新屏幕宽度/1920。 水平方向的缩放尺寸 = 水平方向的缩放因子 * 从服务器水平方向的尺寸。 垂直方向也是如此。 该应用程序现在在我的设备上看起来很好。但它是一种可靠的做事方式吗?我也应该处理显示密度吗?

【问题讨论】:

  • 您是否按照屏幕比例创建了图像?

标签: android screen-resolution


【解决方案1】:

DP 可能是更好的方法,如果您详细说明“未按要求呈现”的含义,我可以尝试提供帮助。

我可以想到您当前方法的两个主要问题:

  1. 设备的不同纵横比。使用你的方法,你最终会得到扭曲的图像。例如,“服务器尺寸”中的正方形是 400x400。在 800x480 手机中,该正方形将是 162x177 - 不再是正方形。根据您的应用程序的视觉效果和目的,这可能是也可能不是问题。如果这是一个问题,您需要考虑到这一点。
  2. 物理视图的大小。 DP 方法的目的之一是确保视图在不同设备上具有(几乎)相同的大小,主要是永远不会太小而无法为用户处理。所以使用 DP 方法,一个 100dp 的按钮在高密度设备上是 200px,在中等密度设备上是 100px。这样按钮在两个设备上的物理尺寸相同。 但是您的方法忽略了这一点。以第一个示例中的正方形为例 - 它始终是屏幕宽度的五分之一 (400/1920)。这可以很大也可以很小,具体取决于设备尺寸。同样,根据您的需要,这可能是也可能不是问题。

只要您解决了这些(甚至更多)问题,您的方法就可以奏效。但与仅使用 DP 相比,它确实需要特别小心,并且可能需要更多的编码和工作才能使其完美运行。

【讨论】:

  • 这是一个很好的观点,但我忘了在 OP 中提到该应用程序只需要支持 1920*1080 和 1280*720 分辨率,并且对于它们,(1280/1920) 或 ( 720/1080) 比率相同。
  • 我仍然会考虑密度,例如,这样您就不会在平板电脑上看到巨大的按钮。考虑到纵横比是相同的,您只需稍微修改一下您的因素即可获得一致的用户体验。但考虑到一些 1280x720 设备为应用程序使用全屏区域,而其他 1280x720 设备为屏幕软按钮保留一些空间。所以 Galaxy S3 和 Galaxy nexus 之间的实际纵横比并不相等。但是,如果您使用的是全屏沉浸式模式,那么您就可以开始了。
猜你喜欢
  • 2016-07-27
  • 2016-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-17
  • 1970-01-01
相关资源
最近更新 更多