我正在android studio中开发一个应用程序,它可以在1080x1920手机(及更低版本)上正确显示但是对于像我这样的手机(s8)应用程序搞砸了,我无法找到解决应用程序的ui的方法屏幕尺寸。所以,我想知道是否有办法将应用程序的屏幕尺寸限制为1080x1920(假设屏幕的顶部和底部有黑条),即使手机的尺寸大于此尺寸(这在游戏中自动完成)与s8不兼容的。你们知道一种实现这种效果的方法吗?
答案 0 :(得分: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宽高比)并设置您的父View ViewParams,如上所述。
最后,您将内容设置为父视图:
setContentView(yourView);
关于它。希望有所帮助。
编辑:既然您已经提到过游戏,我可以告诉您(如果您使用Android SDK)将SurfaceView作为父视图,程序是相同的。