Android编程实现获得手机屏幕真实宽高的方法
本文实例讲述了Android编程实现获得手机屏幕真实宽高的方法。分享给大家供大家参考,具体如下:
WindowManagerw=activity.getWindowManager(); Displayd=w.getDefaultDisplay(); DisplayMetricsmetrics=newDisplayMetrics(); d.getMetrics(metrics); //sinceSDK_INT=1; widthPixels=metrics.widthPixels; heightPixels=metrics.heightPixels; try{ //usedwhen17>SDK_INT>=14;includeswindowdecorations(statusbarbar/menubar) widthPixels=(Integer)Display.class.getMethod("getRawWidth").invoke(d); heightPixels=(Integer)Display.class.getMethod("getRawHeight").invoke(d); }catch(Exceptionignored){ } try{ //usedwhenSDK_INT>=17;includeswindowdecorations(statusbarbar/menubar) PointrealSize=newPoint(); Display.class.getMethod("getRealSize",Point.class).invoke(d,realSize); widthPixels=realSize.x; heightPixels=realSize.y; }catch(Exceptionignored){ }
补:改进版(弥补了原先非支持版本的一些异常):
WindowManagerw=activity.getWindowManager(); Displayd=w.getDefaultDisplay(); DisplayMetricsmetrics=newDisplayMetrics(); d.getMetrics(metrics); //sinceSDK_INT=1; widthPixels=metrics.widthPixels; heightPixels=metrics.heightPixels; //includeswindowdecorations(statusbarbar/menubar) if(Build.VERSION.SDK_INT>=14&&Build.VERSION.SDK_INT<17) try{ widthPixels=(Integer)Display.class.getMethod("getRawWidth").invoke(d); heightPixels=(Integer)Display.class.getMethod("getRawHeight").invoke(d); }catch(Exceptionignored){ } //includeswindowdecorations(statusbarbar/menubar) if(Build.VERSION.SDK_INT>=17) try{ PointrealSize=newPoint(); Display.class.getMethod("getRealSize",Point.class).invoke(d,realSize); widthPixels=realSize.x; heightPixels=realSize.y; }catch(Exceptionignored){ }
希望本文所述对大家Android程序设计有所帮助。