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. Andriod界面设计适配和Android(安卓)Studio中的资源
  2. Android(安卓)资源,国际化,自适应
  3. android 屏幕分辨率问题
  4. Android屏幕计量单位详解
  5. Android中Bitmap类getPixel方法获取的像素值为负
  6. Android如何实现获取短信验证码的功能
  7. 获取Android设备硬件信息
  8. Android(安卓)1.6 支持更多的屏幕大小和分辨率
  9. Android屏幕适配全攻略(最权威的官方适配指导)Android屏幕适配出现

随机推荐

  1. vmware 虚拟机中Ubuntu 20.04系统大小写
  2. ThingJS:数字孪生城市的最小单元如何“智
  3. 运算符、流程控制、循环与文件包含
  4. 表格练习测试
  5. jenkins打包文件上传七牛云
  6. jenkins轮询任务
  7. smobiler仿饿了么app搜索页面
  8. 为什么Python受关注?Python热门的原因!
  9. 从某人的公众号学到一个网上学习资源搜索
  10. 一文读懂HTTP常见状态码