zoukankan      html  css  js  c++  java
  • 关于android获得设备宽高

    传统的办法:

    DisplayMetrics dm = new DisplayMetrics();
            getWindowManager().getDefaultDisplay().getMetrics(dm);
            mDeviceWidth = dm.widthPixels;
            mDeviceHeight = dm.heightPixels;

    这样是可以获取到设备的宽高的,一般的手机也没测试出过问题。但是在android 的pad上就不行了。由于各厂商没有统一标准,有的pad获取到的w和h是包含标题栏高度的,有的则没包含标题栏高度,而在pad上获取标题栏高度始终是0,手机上又可以获取标题栏高度,综上,获得实际想要的屏幕能显示的最大尺寸,比较好的方法是下面的方案:

    View loading = new View(this){
                @Override
                protected void onLayout(boolean changed, int left, int top,
                        int right, int bottom) {
                    mScreenHeight = bottom;
                    mScreenWidth = right;
                    super.onLayout(changed, left, top, right, bottom);
                }
            };
            loading.setBackgroundResource(R.drawable.bg);
            
            setContentView(loading);

    如上代码,程序可以做一个默认的启动页面,像微信或者qq一样,然后在启动页面的onLayout中,获取view的宽高给mScreenHeight和mScreenWidth赋值,这样之后的页面里再使用这个变量,就是当前设备能显示的最大尺寸了。

  • 相关阅读:
    java实现遍历树形菜单方法——service层
    Es 中一个分片一般设置多大
    Too Many Open Files的错误
    线程池队列满导致错误
    ES正在弱化type这个概念
    更新设置api
    遥控器 静音键 点播键
    Byzantine failures
    TGI指数
    墨菲定律(Murphy's Law)
  • 原文地址:https://www.cnblogs.com/xirtam/p/3388128.html
Copyright © 2011-2022 走看看