Tro*_*ois 12 android resolution
我已经尝试了不同的方法来获取设备的屏幕尺寸,但它总是返回错误的大小(791x480而不是854x480).这可能是由于导航栏.我的设备当前正在运行JellyBean 4.1.1.
我试过了:
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
OpenGLRenderer.widthScreen = size.x;
OpenGLRenderer.heightScreen = size.y;
Run Code Online (Sandbox Code Playgroud)
和:
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
String resolution = dm.widthPixels + "x" + dm.heightPixels;
Run Code Online (Sandbox Code Playgroud)
我正在使用以下代码将应用程序全屏显示:
setContentView(mGLSurfaceView);
mGLSurfaceView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
Run Code Online (Sandbox Code Playgroud)
我注意到在logcat中,返回了正确的大小:
01-01 03:05:06.967: I/InputReader(1961):
Device reconfigured: id=8, name='cyttsp-spi',
surface size is now 480x854, mode is 1
Run Code Online (Sandbox Code Playgroud)
在我的AndroidManifest:
uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16"
Run Code Online (Sandbox Code Playgroud)
我用了:
为什么我无法获得真正的尺寸(480x854)?或者我如何使用"设备重新配置"返回的表面?
Ahm*_*med 11
试试这个
final DisplayMetrics metrics = new DisplayMetrics();
Display display = getWindowManager().getDefaultDisplay();
Method mGetRawH = null,mGetRawW = null;
try {
// For JellyBeans and onward
if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN){
display.getRealMetrics(metrics);
realWidth = metrics.widthPixels;
realHeight = metrics.heightPixels;
}
else{
// Below Jellybeans you can use reflection method
mGetRawH = Display.class.getMethod("getRawHeight");
mGetRawW = Display.class.getMethod("getRawWidth");
try {
realWidth = (Integer) mGetRawW.invoke(display);
realHeight = (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();
}
}
Run Code Online (Sandbox Code Playgroud)
试着打电话
display.getRealSize();
Run Code Online (Sandbox Code Playgroud)
免责声明: 我没有意识到这一点,但这只适用于API 17(Android 4.2/JellyBean)及以上版本.
| 归档时间: |
|
| 查看次数: |
12460 次 |
| 最近记录: |