根据手机分辨率限制应用的屏幕大小



我正在在Android Studio中开发一个应用程序,该应用程序在1080x1920手机(和较低)上正确显示,但是对于像Mine(S8)这样的手机(S8),该应用程序被弄乱了,我找不到一个为每个屏幕尺寸修复应用程序UI的方法。因此,我想知道是否有一种方法可以将应用程序的屏幕大小限制在1080x1920(假设屏幕底部的黑色条)即使手机的尺寸大于此(这是在游戏中自动完成的)与S8不兼容的。你们知道一种实现这种效果的方法吗?

有可能的情况下,您可以将父视图设置为确切的尺寸,给定所需的长宽比(1080x1920扩展到9x16)。为此,您必须以编程方式调用视图(或在代码中创建),并使用LayoutParams以像素为单位:

yourView.setLayoutParams(new LayoutParams(width, height));

对于重量和高度,您需要实际的屏幕尺寸,您可以从WindowManager获得:

WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
Display display = windowManager.getDefaultDisplay();
Point point = new Point();
display.getSize(point);
int x = point.x;
int y = point.y;

在这里,您可以获得X和Y,它可以容纳您的实际屏幕尺寸(以像素为单位)。然后,您决定要减少哪一个(以维持9x16宽高比),并如上所述设置父视图的LayoutParams。

最后,您将内容视图设置为您的父视:

setContentView(yourView);

就是这样。希望会有所帮助。

编辑:由于您已经提到了游戏,我可以告诉您(如果您使用Android SDK),您的SurfaceView作为父视图,该过程相同。

相关内容

最新更新