gpt4 book ai didi

Android:获取实际屏幕尺寸

转载 作者:太空狗 更新时间:2023-10-29 16:37:41 28 4
gpt4 key购买 nike

从 API 17 开始,可以通过以下方式获取手机的实际屏幕尺寸:

if (android.os.Build.VERSION.SDK_INT >= 17){
display.getRealSize(size);
int screen_width = size.x;
screen_height = size.y;
} else {...}

我想获得 API 8-16 的真实屏幕尺寸。在这种情况下处理 else 条件的最佳方法是什么?

最佳答案

以下是我在所有 API 上获取实际屏幕高度的解决方案。当设备有物理导航栏时,dm.heightPixels 返回实际高度。当设备有软件导航栏时,它返回总高度减去栏。我只在几台设备上进行了测试,但到目前为止效果很好。

int navBarHeight = 0;
Resources resources = context.getResources();
int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
if (resourceId > 0) {
navBarHeight = resources.getDimensionPixelSize(resourceId);
}

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);

boolean hasPhysicalHomeKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_HOME);
if (android.os.Build.VERSION.SDK_INT >= 17){
display.getRealSize(size);
int screen_width = size.x;
screen_height = size.y;
} else if (hasPhysicalHomeKey){
screen_height = dm.heightPixels;
} else {
screen_height = dm.heightPixels + navBarHeight;
}

关于Android:获取实际屏幕尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24657666/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com