总结了下,我遇到的获取Android屏幕长宽的方式总共有三种。大同小异,重点在于如何获取系统中的WindowManager管理类对象,方可对数据的操作;
代码如下
1 /** 2 * @return 屏幕的长宽数组 3 * @author WHF 4 */ 5 public int[] getScreen(){ 6 DisplayMetrics dm; 7 Application mApplication = new Application(); 8 dm = mApplication.getResources().getDisplayMetrics(); 9 int screens[] = new int[]{dm.widthPixels,dm.heightPixels}; 10 return screens; 11 } 12 /** 13 * @param context 通过系统服务来获取相应的系统管理器,从而获得到屏幕长宽 14 * @author WHF 15 */ 16 public void getScreen(Context context){ 17 DisplayMetrics dm = new DisplayMetrics(); 18 WindowManager wManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); 19 wManager.getDefaultDisplay().getMetrics(dm); 20 int width = dm.widthPixels; 21 int height = dm.heightPixels; 22 } 23 /** 24 * @param activity 该参数可直接得到winmanager. 25 */ 26 public void getScreen(Activity activity){ 27 DisplayMetrics dm = new DisplayMetrics(); 28 activity.getWindowManager().getDefaultDisplay().getMetrics(dm); 29 int width = dm.widthPixels; 30 int height = dm.heightPixels; 31 }