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