根据手机的分辨率限制应用的屏幕尺寸

问题描述 投票:0回答:1

我正在android studio中开发一个应用程序,它可以在1080x1920手机(及更低版本)上正确显示但是对于像我这样的手机(s8)应用程序搞砸了,我无法找到一种方法来修复每个屏幕尺寸的应用程序的UI。所以,我想知道是否有办法将应用程序的屏幕尺寸限制为1080x1920(假设屏幕的顶部和底部有黑条),即使手机的尺寸大于此尺寸(这是在游戏中自动完成的)与s8不兼容)。你们知道一种实现这种效果的方法吗?

android screen-resolution screen-size samsung-s8
1个回答
1
投票

有可能,您可以根据所需的宽高比将您的父视图设置为精确的大小(1080x1920缩小到9x16)。为此,您必须以编程方式调用View(或在代码中创建它)并使用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作为父视图,程序是一样的。

© www.soinside.com 2019 - 2024. All rights reserved.