android获取屏幕宽高

方法一:

WindowManager wm = (WindowManager)getContext().getSystemService(Context.WINDOW_SERVICE);


int width = wm.getDefaultDisplay().getWidth();//屏幕宽度


int height = wm.getDefaultDisplay().getHeight();//屏幕高度



方法二:


WindowManager wm = this.getWindowManager();


int width = wm.getDefaultDisplay().getWidth(); //屏幕宽度


int height = wm.getDefaultDisplay().getHeight(); //屏幕高度



方法三:


DisplayMetrics metric = new DisplayMetrics();


getWindowManager().getDefaultDisplay().getMetrics(metric);


int width = metric.widthPixels;//获取屏幕宽度(像素)


int height = metric.heightPixels;//高度(像素)


float density = metric.density;//密度(值:0.75/1.0/1.5)


int densityDpi = metric.densityDpi;//密度DPI(值:120/160/240)


在方法三中,在一个低密度的小屏手机上,仅靠上面的代码是不能获取正确的尺寸的。Android系统会将240x320的低密度(120)尺寸转换为中等密度(160)对应的尺寸,这样的话就大大影响了程序的编码。


因此在清单文件(AndroidManifest.xml)中设置:


<supports-screens


android:smallScreens="true"


android:normalScreens="true"


android:largeScreens="true"


android:resizeable="true"


android:anyDensity="true" />