关于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赋值,这样之后的页面里再使用这个变量,就是当前设备能显示的最大尺寸了。
关于android获得设备宽高的更多相关文章
- 微信 小程序 drawImage  wx.canvasToTempFilePath wx.saveFile 获取设备宽高 尺寸问题
		以下问题测试环境为微信开发者0.10.102800,手机端iphone6,如有不对敬谢指出. 根据我的测试,context.drawImage,在开发者工具中并不能画出来,只有预览到手机中显示. wx ... 
- 根据设备宽高动态设置View的大小
		得到设备屏幕宽高: WindowManager wManager = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE); ... 
- 根据设备宽高设置View的大小
		得到设备屏幕宽高: WindowManager wManager = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE); ... 
- view--4种Android获取View宽高的方式
		有时我们会有基于这样的需求,当Activity创建时,需要获取某个View的宽高,然后进行相应的操作,但是我们在onCreate,onStart中获取View的大小,获取到的值都是0,只是由于View ... 
- android获取屏幕宽高与获取控件宽高
		获取屏幕宽高 // 获取屏幕宽高(方法1) int screenWidth = getWindowManager().getDefaultDisplay().getWidth(); // 屏幕宽(像素 ... 
- android获取view宽高的几种方法
		在onCreate方法中我们通过mView.getWidth()和mView.getHeight()获取到的view的宽高都是0,那么下面几种方法就可以在onCreate方法中获取到view的宽高. ... 
- android 获取屏幕宽高  和 获取控件坐标
		一.获取屏幕宽高: (1). WindowManager wm = (WindowManager)getSystemService(Context.WINDOW_SERVICE); int width ... 
- Android -- 获取View宽高
		在activity中可以调用View.getWidth.View.getHeight().View.getMeasuredWidth() .View.getgetMeasuredHeight()来获得 ... 
- Android 坐标与宽高研究getLeft() getTop() getRight()和getBottom()
		把view看做一个矩形,分别表示的是一个view的左边,上边,右边,下边距离他的父组件的距离. getRight() =getLeft() + getWidth() getBottom()= getT ... 
随机推荐
- BZOJ1086 [SCOI2005]王室联邦(树分块)
			把树的结点分块,块内结点连通且个数[b,3b]. 一遍DFS,维护一个栈,设置一个虚拟栈底以保证连通,递归返回时判断栈内元素个数是否大于等于b,是则划分为一个块,最后剩下的与最后一个块划分在一起. h ... 
- BZOJ4294 : [PA2015]Fibonacci
			斐波那契数列模$10^m$的循环节为$6\times10^m$,于是从低位到高位dfs即可. #include<cstdio> #include<cstring> #defin ... 
- HDU 3853(期望DP)
			题意: 在一个r*c的网格中行走,在每个点分别有概率向右.向下或停止不动.每一步需要的时间为2,问从左上角走到右下角的期望时间. SOL: 非常水一个DP...(先贴个代码挖个坑 code: /*== ... 
- xamarin studio And linq 查询方式分析
			在 Windows 操作系统可以正常读取网络上的 https 数据流,在 Linux 操作系统中会失败:http://www.cnblogs.com/skyivben/archive/2012/03/ ... 
- CentOS 多网卡绑定bonding
			1.查看环境 ip a |grep -v lo 2.加载bonding模块 modprobe bonding 3.开机自动加载模块到内核 echo 'modprobe bonding &> ... 
- [leetCode][003] Intersection of Two Linked Lists
			[题目]: Write a program to find the node at which the intersection of two singly linked lists begins. ... 
- UOJ#35 后缀排序
			这是一道模板题. 读入一个长度为 n 的由小写英文字母组成的字符串,请把这个字符串的所有非空后缀按字典序从小到大排序,然后按顺序输出后缀的第一个字符在原串中的位置.位置编号为 1 到 n. 除此之外为 ... 
- java中&和&&的区别和联系
			我想很多人在学习java的时候,或者其他语言(如:C#,.Net等)都会遇到 &和&& 然而,如果你没有真正的理解他们的意思,这会给你思路上面带来很大的麻烦 在这篇blog中, ... 
- log4j与commons-logging,slf4j的关系
			前面有一篇日志中简单的介绍了 log4j,同时也介绍了它与commons-logging的关系,但是突然冒出来一个slf4j,并且slf4j有取代commons-logging的趋势,所以,我们可以推 ... 
- NBUT 1028 该减肥了(简单递推)
			[1028] 该减肥了 时间限制: 1000 ms 内存限制: 65535 K 问题描述 由于长期缺乏运动,Teacher Xuan发现自己的身材臃肿了许多,于是他想健身,更准确地说是减肥.Teach ... 
