最近在写自定义控件的时候被屏幕高度的获取小坑了一下,哈哈,还好最后解决了,写篇简单的博客记录下来
如下图,红色圈起来的部分是状态栏,黄色部分是标题栏,蓝色部分是导航栏,直接上方法
获取状态栏高度
private void initStatusBarHeight(){
int result = 0;
int resourceId = this.myContext.getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
result = this.myContext.getResources().getDimensionPixelSize(resourceId);
}
this.statusBarHeight=result;
}
获取标题栏高度
private void initTitleBarHeight(){
TypedValue tv = new TypedValue();
if (this.myContext.getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true)) {
this.titleBarHeight = TypedValue.complexToDimensionPixelSize(tv.data, this.myContext.getResources().getDisplayMetrics());
}
}
获取导航栏高度
private void initNavigationBarHeight(){
int result=0;
Resources resources = this.myContext.getResources();
int resourceId=resources.getIdentifier("navigation_bar_height","dimen","android");
this.navigationBarHeight = resources.getDimensionPixelSize(resourceId);
}
我是菜鸟,多多指教。DRW