2014-09-26 114 views
1

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

+0

您是否按照屏幕比例创建了图像? – Hasnain 2014-09-26 06:43:56

回答

0

DP可能是更好的方法,如果你详细阐述一下你的意思是'不按需要呈现',我可以尝试提供帮助。

我能想到的两个主要问题与当前的方法:设备的

  1. 不同的纵横比。使用你的方法,你最终会失真的图像。例如,“服务器尺寸”中的正方形为400x400。在800x480手机中,该广场将为162x177 - 不再是广场。根据您的应用程序的视觉效果和目的,这可能会也可能不是问题。如果这是一个问题,你需要解释这一点。
  2. 物理视图的大小。 DP方法的目的之一是确保视图在不同设备上具有(几乎)相同的大小,主要是不会太小以至于不能处理用户。因此,使用DP方法时,高密度设备上的100dp按钮将为200px,而在中等密度设备上则为100px。通过这种方式,这两个设备上的按钮在物理上大小相同。 但是你的方法忽略了这一点。以第一个例子中的平方 - 它将始终是屏幕宽度的第五个(400/1920)。根据设备尺寸的不同,这可能很大或很小。再次,根据您的需要,这可能会或可能不会成为问题。

只要你考虑到这些(也许更多)的问题,你的方法就可以工作。但它确实需要特别的关注,并且可能需要更多的编码和工作才能使其完美工作,而不是简单地使用DP。

+0

这是一个非常好的点,但我忘了在OP中提到,该应用程序只需要支持1920 * 1080和1280 * 720分辨率,对于它们两者来说,(1280/1920)或(720/1080)比例都是相同的。 – 2014-09-26 08:54:02

+0

我仍然会将密度考虑在内,例如,您最终不会购买平板电脑上的巨大按钮。考虑到宽高比是相同的,您只需稍微修改您的系数即可获得一致的用户体验。但是请考虑一些1280x720设备为应用程序使用全屏幕区域,而其他1280x720设备为屏幕上的软按钮保留一些空间。所以Galaxy S3与Galaxy联系的实际宽高比不相等。但是,如果您使用的是全屏沉浸式模式,那么您很好。 – nitzanj 2014-09-26 10:56:53