Android系统信息获取 之十二:获取屏幕分辨率及密度


Android中屏幕分辨率可以有三种方式进行获取,一种是通过WindowManager获取,第二种是通过Resources获取,第三种是Display获取。 可结合具体环境灵活使用。

其中获取的屏幕宽高单位为px,屏幕密度的获取可以参考两个值density和densityDpi,可根据需要自行获取。

下面是把三种方式写成独立的方法,使用时可将方法的具体实现复制到具体代码中。

//获得手机的宽度和高度像素单位为px// 通过WindowManager获取  public void getScreenDensity_ByWindowManager(){DisplayMetrics mDisplayMetrics = new DisplayMetrics();//屏幕分辨率容器getWindowManager().getDefaultDisplay().getMetrics(mDisplayMetrics);int width = mDisplayMetrics.widthPixels;int height = mDisplayMetrics.heightPixels;float density = mDisplayMetrics.density;int densityDpi = mDisplayMetrics.densityDpi;Log.d(TAG,"Screen Ratio: ["+width+"x"+height+"],density="+density+",densityDpi="+densityDpi);Log.d(TAG,"Screen mDisplayMetrics: "+mDisplayMetrics);}// 通过Resources获取  public void getScreenDensity_ByResources(){DisplayMetrics mDisplayMetrics = getResources().getDisplayMetrics();  int width = mDisplayMetrics.widthPixels;int height = mDisplayMetrics.heightPixels;float density = mDisplayMetrics.density;int densityDpi = mDisplayMetrics.densityDpi;Log.d(TAG,"Screen Ratio: ["+width+"x"+height+"],density="+density+",densityDpi="+densityDpi);Log.d(TAG,"Screen mDisplayMetrics: "+mDisplayMetrics);}// 获取屏幕的默认分辨率  public void getDefaultScreenDensity(){Display mDisplay = getWindowManager().getDefaultDisplay();  int width = mDisplay.getWidth();int height = mDisplay.getHeight();Log.d(TAG,"Screen Default Ratio: ["+width+"x"+height+"]");Log.d(TAG,"Screen mDisplay: "+mDisplay);}

Log中可以看到mDisplayMetrics的成员,其中

density为显示的逻辑分辨率;widthheight就为屏幕分辨率(为绝对宽度与高度),与fields中的widthPixelsheightPixels一致;scaleDensitydensity一致;xdpiydpi为准确物理像素。


更多相关文章

  1. Android屏幕适配全攻略(最权威的官方适配指导)Android屏幕适配出现
  2. Android 1.6 支持更多的屏幕大小和分辨率
  3. Android屏幕计量单位详解
  4. 实现Android屏幕控制Androidscreencast应用
  5. webView自适应屏幕大小
  6. android 从matrix获取处理过的图片的实际宽度
  7. 关于手机启动的方向,和屏幕的单,双击事件
  8. Android屏幕自适应的问题

随机推荐

  1. android之hardwareAccelerated你不知道的
  2. popWindowdemo
  3. Android(安卓)menu菜单items间隔设置
  4. Android(安卓)NoteX Q9: PopupWindow set
  5. (转)Android(安卓)Contacts(一)—— 读取联
  6. android对应版本号
  7. android 下载ndk后 报错Android/sdk/ndk-
  8. Android(安卓)Button在中间显示
  9. android intent flag
  10. android studio 运行活动闪退Caused by: