android 平板获取真实宽高(包括状态栏)
来源:互联网 发布:淘宝申请品牌材料 编辑:程序博客网 时间:2024/05/22 07:40
出于目前android平板方面的书籍非常少很多有关android平板与android手机开发之间的区别的文章更是凤毛麟资,本文是对andriod平板新手而写,高手勿喷。
关于android手机屏幕与android平板屏幕尺寸的获取其高度与宽度是有所区别的,没接触过平板的人,在写android手机获取屏幕的大小的时候是不加思索的直接使用display的getheight和getwidth函数,如果软件单纯运用在手机上并没有太大问题,但是如果要兼容到平板的话会出先一个问题,平板的话,利用以上函数获得的长宽是不包括status栏的,也就是说其获得的的实际长宽是可见的不包括状态栏的长宽。往往造成的问题是,如果你在旋转功能的时候,原来的height在旋转后的长度会变长,因为状态栏此时转到了下边,这样如果你还利用旋转前的height的话会发现不是真实的屏幕的长。
又由于android平板随着不同sdk版本的不同,调用getheight所获得的长度是不一致的,具体有和不同请看链接http://blog.csdn.net/zhtsuc/article/details/6691388;
因此针对不同版本写了关于获取平板真实宽高(包括状态栏)的函数,以及获取平板可见区域的宽高(不包括状态栏),从而也可以获得状态栏的高度。
获取真实宽高:
private int realHeight = 0;
private int realWidth = 0;
private int screenWidth = 0;
private int screenHeight = 0;
public void getRealScreentData() {
WindowManager w = getWindowManager();
Display d = w.getDefaultDisplay();
DisplayMetrics metrics = new DisplayMetrics();
d.getMetrics(metrics);
realHeight = metrics.heightPixels;
realWidth = metrics.widthPixels;
Log.e("sfa", "Build.VERSION.SDK_INT" + Build.VERSION.SDK_INT);
if (Build.VERSION.SDK_INT >= 14 && Build.VERSION.SDK_INT < 17)
try {
realHeight = (Integer) Display.class
.getMethod("getRawHeight").invoke(d);
realWidth = (Integer) Display.class
.getMethod("getRawWidth").invoke(d);
} catch (Exception ignored) {
}
else if (Build.VERSION.SDK_INT >= 17)
try {
android.graphics.Point realSize = new android.graphics.Point();
Display.class.getMethod("getRealSize",
android.graphics.Point.class).invoke(d, realSize);
realHeight = realSize.y;
realWidth = realSize.x;
} catch (Exception ignored) {
}
}
获取可见区域宽高:
public void getVisibleData() {
DisplayMetrics dm = new DisplayMetrics();
dm = this.getApplicationContext().getResources().getDisplayMetrics();
screenWidth = dm.widthPixels;
screenHeight = dm.heightPixels;
}
获取状态栏高度:
public int getStatusHeight() {
return (realHeight - screenHeight );
}
- android 平板获取真实宽高(包括状态栏)
- android常见的屏幕工具,获取屏幕宽高,状态栏高,手机截屏(包括状态栏和不包括状态栏)
- Android--获得屏幕高宽,屏幕截图(包括或不包括状态栏)
- 获取Android控件的真实宽高,亲测有效
- Android:获取屏幕完整宽高,包含状态栏
- Android获取手机屏幕宽高/屏幕状态栏的高度
- Android 获取屏幕宽高,状态栏,标题栏高度
- Android获取屏幕宽高及状态栏高度的方法
- Android获取设备宽高,以及状态栏高度
- android获取屏幕宽高和状态栏高度
- Android 获取屏幕信息(状态栏、标题栏高度,屏幕宽高)
- IOS获取屏幕的真实宽高
- 获取图片的真实宽高
- 获取屏幕尺寸,包括状态栏
- Android获取手机屏幕宽高、状态栏高度以及字符串宽高信息的方法
- 如何获取屏幕宽、高、状态栏高度
- Android获取手机屏幕、状态栏、Activity显示区域的宽高的获取
- Android获取平板Id
- hdu 1215 七夕节
- Jsoup解析报错
- linux shell编程指南第十一章------------合并与分割1
- hbase bulk load相关源码简析之PutSortReducer、KeyValueSortReducer
- 到底是第几天
- android 平板获取真实宽高(包括状态栏)
- C语言在linux下递归遍历文件夹中的文件
- 培训有用吗?软件行业应采用“学徒制”
- 容器类常用方法(4)_适配
- 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
- RPG游戏编写教程(一)——准备工作
- 获取文件长度
- 百练POJ 2801: 填词
- B - Dollars (完全背包)