【发布时间】:2014-03-30 14:44:20
【问题描述】:
我需要找到一种方法来实际获取设备屏幕的尺寸。我已经尝试了很长时间,但我无法找到一种方法来找到可绘制屏幕的高度和宽度(以像素为单位)。
这是我现在使用的代码:
SCREEN_HEIGHT = metrics.heightPixels - unusable_height;
unusable_height 由以下人员找到:
//Calculate action Bar Height
if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true)){
unusable_height = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics());
}
//Calculate the navigation bar height
int resourceId = getResources().getIdentifier("navigation_bar_height", "dimen", "android");
if (resourceId > 0) {
unusable_height = unusable_height + getResources().getDimensionPixelSize(resourceId);
}
这在我的平板电脑中完美运行,但在我的手机中,结果屏幕高度太大,因为东西会从屏幕上拉出。 (我根据屏幕高度计算所有尺寸)。这是横向模式。
有什么帮助吗?如何知道从操作栏末端到无法再绘制的像素总数?
在我的手机中,导航栏不会旋转,因此它会停留在纵向模式下的底部位置。所以底部是屏幕的末端。但是在我的平板电脑中,导航栏会旋转并位于屏幕底部。
【问题讨论】:
-
您使用的是 AppCompat 的支持 ActionBar 吗?还是 Actionbar Sherlock?
-
它不是夏洛克,因为我从来没有下载过这个库。所以我假设是一个 appcompat。
标签: android dimensions