Android Scaling for Multiple Resolution Screens

时间:2014-09-26 05:58:36

标签: android screen-resolution

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

1 个答案:

答案 0 :(得分:0)

DP可能是更好的方法,如果你详细说明你的意思是“没有按要求呈现”'我可以尝试帮忙。

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

  1. 设备的不同宽高比。使用您的方法,您将最终得到扭曲的图像。例如,服务器维度中的正方形'是400x400。在800x480手机中,该正方形将为162x177 - 不再是正方形。根据您的应用的视觉效果和目的,这可能是也可能不是问题。如果这是一个问题,您需要考虑到这一点。
  2. 物理观点'尺寸。 DP方法的目的之一是确保视图在不同设备上具有(几乎)相同的大小,对于用户来说,主要决不会太小。因此,使用DP方法,100dp按钮在高密度设备上为200px,在中密度设备上为100px。这样,按钮在两个设备上的物理尺寸相同。 但你的方法忽略了这一点。从第一个例子中取出方块 - 它将始终是屏幕宽度的五分之一(400/1920)。这可能是巨大的,也可能是微小的,具体取决于设备的尺寸。同样,根据您的需要,这可能是也可能不是问题。
  3. 只要您考虑到这些(可能更多)问题,您的方法就可以正常运行。但它确实需要特别小心,并且可能需要更多编码和工作,以使其与仅使用DP相比完美地工作。