Android 如何评估视图大小以在所有设备中保持相同的比例

Android how to evaluate view size to keep same proportion in all devices

我正在寻找一种在所有设备上保持视图大小成比例的方法。我尝试了许多数学计算(例如混合屏幕尺寸、密度、百分比等),但还没有找到任何解决方案,只是每个测试设备的结果不同。

举个例子:假设我在 sw-360dp 上测试一个应用程序,最终我找到了一个可用的尺寸视图。

relativeLayoutParams.width  = 150;

relativeLayoutParams.height = 250;

这具有创建大小约为屏幕宽度的 1/3 和屏幕高度的 1/2 的视图的效果。

我如何才能动态获得宽度和高度的值,使视图保持 1/3 宽度与 1/2 高度的纵横比?至少我认为这就是文档所说的内容:"calculate exact view size (or margin, padding, etc.) from a percentage of screen size"。

还是我理解有误?

如有任何帮助,我们将不胜感激。

您可以获取设备屏幕尺寸并在那里定义比例,

    Display display = getWindowManager().getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);

然后,

    width = (int) size.x * 1/3 ; 
    height = (int) size.y * 1/2 ;