安卓工具类之获取屏幕高宽尺寸以及安卓中dp和px的转换
2017-04-27 19:17
323 查看
获取屏幕尺寸,以及转换dp和px
/** * 获取手机屏幕大小 * @author * */ public class WindowWH { /** * 获取屏幕宽度 * @param context * @return int */ public static int getWindowWidth(Context pContext){ DisplayMetrics _DisplayMetrics = new android.util.DisplayMetrics(); ((Activity)pContext).getWindowManager().getDefaultDisplay().getMetrics(_DisplayMetrics); return _DisplayMetrics.widthPixels; } /** * 获取屏幕高度 * @param context * @return int */ public static int getWindowHeight(Context pContext){ DisplayMetrics _DisplayMetrics = new android.util.DisplayMetrics(); ((Activity)pContext).getWindowManager().getDefaultDisplay().getMetrics(_DisplayMetrics); return _DisplayMetrics.heightPixels; } /** * 获取状态栏的高度 * @param pContext * @return int */ public static int getStatusHeight(Context pContext) { int _Statusheight = 50; int _ResourceId = pContext.getResources().getIdentifier("status_bar_height", "dimen", "android"); if (_ResourceId > 0) { _Statusheight = pContext.getResources().getDimensionPixelSize(_ResourceId); } return _Statusheight; } /** * 获取ActionBar的高度 * @param pContext * @return */ public static int getActionBarHeight(Context pContext) { int _ActionBarHeight = 0; TypedValue _TypedValue = new TypedValue(); if (pContext.getTheme().resolveAttribute(android.R.attr.actionBarSize, _TypedValue, true)) { _ActionBarHeight = TypedValue.complexToDimensionPixelSize(_TypedValue.data,pContext.getResources().getDisplayMetrics()); } return _ActionBarHeight; } /** * 显示区域的高 * @param pContext * @return */ public static int getDisplayHeight(Context pContext){ return getWindowHeight(pContext) - getStatusHeight(pContext) - getActionBarHeight(pContext); } /** * Android中的Dip转换成像素(px) * @param pContext * @param pFloat * @return */ public static int dip2px(Context pContext, float pFloat) { int value = (int) (TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, pFloat, pContext.getResources().getDisplayMetrics()) + 0.5f); return value; } public static int dip2px(float pFloat) { return dip2px(NewsApplication.sAppContext, pFloat); } /** * 像素(px)转换成Android中的Dip * @param paramContext * @param paramFloat * @return */ public static int px2dip(Context pContext, float pFloat) { return (int) (0.5F + pFloat / pContext.getResources().getDisplayMetrics().density); } /** * 获取NavigationBar的高度 * * @param pActivity * @return */ @TargetApi(Build.VERSION_CODES.HONEYCOMB) public static int getNavigationBarHeight(Context pContext){ try { if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){ if (((Activity)pContext).getWindow().getDecorView().getSystemUiVisibility() == View.SYSTEM_UI_FLAG_VISIBLE) { Resources resources = pContext.getResources(); int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android"); if (resourceId > 0) { return resources.getDimensionPixelSize(resourceId); } } } return 0; } catch (Exception e) { return 0; } } }
相关文章推荐
- 安卓工具类1——像素PX和dp互相转换的方法(获取手机屏幕尺寸PX)
- 工具类 dp转px 获取图片实际尺寸 获取屏幕尺寸
- Android——工具类(屏幕尺寸、sp转换为px、dp转换为px)
- 关于android中屏幕的宽度/高度/屏幕密度(ppi)的获取以及dp与px之间的转换
- Android屏幕尺寸的获取及dp和px的区别和转换
- Android dp、px、sp相互转换、获取屏幕宽高工具类
- Android中dip(dp)与px之间单位转换 dip2px dp转px 无context算法(以及获取获取屏幕宽度和高度)
- 详解Android应用中屏幕尺寸的获取及dp和px值的转换
- Android系统版本以及屏幕相关参数的获取包括长宽,物理尺寸,px,dp,dpi,ppi等,
- Android手机适配问题【autolayout】,【.9制作】【获取手机屏幕的宽高】【px,dp转换】
- Android dp、px、sp互相转换,获取设备屏幕宽高的工具类DisplayUtil源码
- dp和px间的转换及屏幕宽高的获取
- Android计量单位px,in,mm,pt,dp,dip,sp和获取屏幕尺寸与密度
- 获取屏幕宽高,和dp,px,sp的转化工具类
- Android 工具类(将 dp 转成 px 获取屏幕的高度/宽度 判断android SDK 版本是否大于等于5.0)
- Android计量单位px,in,mm,pt,dp,dip,sp和获取屏幕尺寸与密度
- 屏幕适配px和dp转换工具类
- px和dp之间转换和获取状态栏高度工具类
- Android 获取屏幕宽度,dp,sp,px转换方法
- Android 获取屏幕高度和宽度 ,dp与px的转换