本文主要介绍了Android 获取屏幕的多种宽高信息的示例代码,分享给大家,具体如下:

包含的宽高信息如下图所示:

在模拟器上获取到的数据:

08-26 07:19:32.712 7834-7834/com.czy.screeninfo E/MainActivity: getTotalScreenHeight 1920
08-26 07:19:33.505 7834-7834/com.czy.screeninfo E/MainActivity: getScreenWidth 1080
08-26 07:19:34.211 7834-7834/com.czy.screeninfo E/MainActivity: getAvailableScreenHeight 1794
08-26 07:19:34.979 7834-7834/com.czy.screeninfo E/MainActivity: getStatusBarHeight 63
08-26 07:19:35.580 7834-7834/com.czy.screeninfo E/MainActivity: getVirtualBarHeightIfRoom 126
08-26 07:19:36.340 7834-7834/com.czy.screeninfo E/MainActivity: getVirtualBarHeight 126
08-26 07:19:37.048 7834-7834/com.czy.screeninfo E/MainActivity: getTitleHeight 147

具体的代码:

/** * 作者: chenZY * 时间: 2017/8/26 14:37 * 描述: */public class ScreenUtils {  /**   * 返回包括虚拟键在内的总的屏幕高度   * 即使虚拟按键显示着,也会加上虚拟按键的高度   */  public static int getTotalScreenHeight(Activity activity) {    DisplayMetrics displayMetrics = new DisplayMetrics();    activity.getWindowManager().getDefaultDisplay().getRealMetrics(displayMetrics);    return displayMetrics.heightPixels;  }  /**   * 返回屏幕的宽度   */  public static int getScreenWidth(Activity activity) {    DisplayMetrics displayMetrics = new DisplayMetrics();    activity.getWindowManager().getDefaultDisplay().getRealMetrics(displayMetrics);    return displayMetrics.widthPixels;  }  /**   * 返回屏幕可用高度   * 当显示了虚拟按键时,会自动减去虚拟按键高度   */  public static int getAvailableScreenHeight(Activity activity) {    DisplayMetrics displayMetrics = new DisplayMetrics();    activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);    return displayMetrics.heightPixels;  }  /**   * 状态栏高度   */  public static int getStatusBarHeight(Activity activity) {    int resourceId = activity.getResources().getIdentifier("status_bar_height", "dimen", "android");    return activity.getResources().getDimensionPixelSize(resourceId);  }  /**   * 获取虚拟按键的高度   * 会根据当前是否有显示虚拟按键来返回相应的值   * 即如果隐藏了虚拟按键,则返回零   */  public static int getVirtualBarHeightIfRoom(Activity activity) {    DisplayMetrics displayMetrics = new DisplayMetrics();    activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);    int usableHeight = displayMetrics.heightPixels;    activity.getWindowManager().getDefaultDisplay().getRealMetrics(displayMetrics);    int realHeight = displayMetrics.heightPixels;    return realHeight - usableHeight;  }  /**   * 获取虚拟按键的高度,不论虚拟按键是否显示都会返回其固定高度   */  public static int getVirtualBarHeight(Activity activity) {    int resourceId = activity.getResources().getIdentifier("navigation_bar_height", "dimen", "android");    return activity.getResources().getDimensionPixelSize(resourceId);  }  /**   * 标题栏高度,如果隐藏了标题栏则返回零   */  public static int getTitleHeight(Activity activity) {    return activity.getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();  }  /**   * 将dp值转换为px值   */  public static int dp2px(Context context, float dpValue) {    float scale = context.getResources().getDisplayMetrics().density;    return (int) (dpValue * scale + 0.5f);  }  /**   * 将px值转换为dp值   */  public static int px2dp(Context context, float pxValue) {    float scale = context.getResources().getDisplayMetrics().density;    return (int) (pxValue / scale + 0.5f);  }}

或者也可以从这里下载代码:Android 获取屏幕的多种宽高信息

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多相关文章

  1. Android(安卓)获取按钮Button的高度、宽度、坐标
  2. Android源码分享-自动换行LinearLayout
  3. android power key 长按8s 关机
  4. Android(安卓)Binder机制,虚拟机
  5. Android(安卓)4.0 虚拟按键、手机模式、平板模式
  6. Android(安卓)SDK相关介绍
  7. Android(安卓)4.2充电画面关键代码分析
  8. Android(安卓)获取控件高度宽度三种方法,防止0的出现
  9. 在Android中创建一种新的输入法

随机推荐

  1. 我的Android参赛作品--此产品不代表个人
  2. Android(安卓)tp的虚拟按键处理
  3. Android(安卓)副屏相关修改
  4. 从JVM到Dalivk再到ART(class,dex,odex,ELF
  5. Android的进程,线程模型
  6. Android(安卓)NDK带来什么
  7. Android布局文件的属性值解析
  8. 模仿android新浪微博手机客户端项目
  9. 自定义android的tab样式
  10. 【整理】Android中的USB中的UsbAccessory