Android多分辨率屏幕缩放



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

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

我能想到你目前方法的两个主要问题:

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

只要你考虑到这些(也许还有更多)问题,你的方法就可以奏效。但与简单使用DP相比,它确实需要特别小心,可能需要更多的编码和工作才能使其完美工作。

最新更新