gpt4 book ai didi

Android DisplayMetrics 在 ICS 上返回错误的屏幕尺寸(以像素为单位)

转载 作者:IT老高 更新时间:2023-10-28 23:02:51 27 4
gpt4 key购买 nike

我试过这个......

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int fullscreenheight = metrics.heightPixels;
int fullscreenwidth = metrics.widthPixels;

和....

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;

Gnex 的显示屏为 720×1280。返回的宽度/高度结​​果(当然取决于方向)永远不会是 1280。我认为这可能与 Ice Cream Sandwich 中的屏幕导航栏有关,所以我将其隐藏:

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

...然后启动一个线程,该线程连续记录屏幕尺寸高度/宽度。即使在 ICS 导航栏完全消失之后....屏幕尺寸也永远不会报告 1280 的值。我会得到这样的数字:

width  = 720
height = 1184

如何在 ICS 中获得真正的设备屏幕分辨率?

我需要这个值的原因是因为我的应用程序播放视频,并且我希望视频在设备处于横向时占据整个屏幕。现在我知道你在想什么,为什么不给视频 View 一个高度/宽度的“match_parent”值呢?原因是我的视频有多种纵横比,我希望能够根据屏幕的整个宽度计算出正确的视频尺寸。

最佳答案

根据 Ahmed 的回答,这是没有错误的完整代码:

    int width = 0, height = 0;
final DisplayMetrics metrics = new DisplayMetrics();
Display display = getWindowManager().getDefaultDisplay();
Method mGetRawH = null, mGetRawW = null;

try {
// For JellyBean 4.2 (API 17) and onward
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) {
display.getRealMetrics(metrics);

width = metrics.widthPixels;
height = metrics.heightPixels;
} else {
mGetRawH = Display.class.getMethod("getRawHeight");
mGetRawW = Display.class.getMethod("getRawWidth");

try {
width = (Integer) mGetRawW.invoke(display);
height = (Integer) mGetRawH.invoke(display);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} catch (NoSuchMethodException e3) {
e3.printStackTrace();
}

关于Android DisplayMetrics 在 ICS 上返回错误的屏幕尺寸(以像素为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10991194/

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