欢迎来到代码驿站!

Android代码

当前位置:首页 > 移动开发 > Android代码

Android 获取屏幕的多种宽高信息的示例代码

时间:2020-11-07 21:51:12|栏目:Android代码|点击:

本文主要介绍了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 获取屏幕的多种宽高信息

上一篇:Android实现压缩字符串的方法示例

栏    目:Android代码

下一篇:Android EditText随输入法一起移动并悬浮在输入法之上的示例代码

本文标题:Android 获取屏幕的多种宽高信息的示例代码

本文地址:http://www.codeinn.net/misctech/20074.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有