android:anyDensity="true"的情况用以下方法即可获取

DisplayMetrics dm = MainActivity.getActivity().getResources().getDisplayMetrics();                      int w_screen = dm.widthPixels;                      int h_screen = dm.heightPixels; 

android:anyDensity="false"的情况上用面的方法发现获得的值不是实际分辨率,在debug是发DisplayMetrics有两个属性noncompatWidthPixels和noncompatHeightPixels显示了实际分辨率,却无法直接用dm.noncompatWidthPixels这样的方法get出来用,需要用以下方法去获取

int w_screen = 0;int h_screen = 0;         try {            Field field = DisplayMetrics.class.getDeclaredField("noncompatWidthPixels");            field.setAccessible(true);            w_screen = field.getInt(dm);        } catch (NoSuchFieldException e) {            e.printStackTrace();        } catch (IllegalAccessException e) {            e.printStackTrace();        }

h_screen可用类似上面的方法获取

Field导入的是

import java.lang.reflect.Field;


更多相关文章

  1. Android Studio 自动更新失败解决方法
  2. android 获取路径目录方法
  3. Android实现输入法弹出时把布局顶上去和登录按钮顶上去的解决方
  4. Android安装卸载程序具体操作方法解析
  5. android软键盘挤压界面的问题解决方法
  6. Android多分辨率适配框架(1)— 核心基础

随机推荐

  1. SQL语句执行超时引发网站首页访问故障问
  2. 利用SQL Server触发器实现表的历史修改痕
  3. 数据库常用的sql语句汇总
  4. 解析SQL Server中SQL日期转换出错的原因
  5. SQLSERVER对加密的存储过程、视图、触发
  6. SQL Server误设置max server memory的处
  7. sql server使用临时存储过程实现使用参数
  8. 使用 SQL 服务器时,"评估期已过期"错误消
  9. delete误删数据使用SCN号恢复(推荐)
  10. SQL中 patindex函数的用法详解