全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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 四种获取屏幕宽度的方法总结  # android开发教程之textview内容超出屏幕宽度显示省略号  # 转换为  # 标题栏  # 也会  # 给大家  # 所示  # 这里下载  # 者也  # 大家多多  # 如下图  # 状态栏  # 器上  # getVirtualBarHeightIfRoom  # getAvailableScreenHeight  # getStatusBarHeight  # pre  # class  # java  # brush  # getVirtualBarHeight  # chenZY 


相关文章: 如何在搬瓦工VPS快速搭建网站?  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  建站OpenVZ教程与优化策略:配置指南与性能提升  建站之星如何助力企业快速打造五合一网站?  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  高端建站三要素:定制模板、企业官网与响应式设计优化  家具网站制作软件,家具厂怎么跑业务?  中山网站推广排名,中山信息港登录入口?  独立制作一个网站多少钱,建立网站需要花多少钱?  成都网站制作报价公司,成都工业用气开户费用?  如何构建满足综合性能需求的优质建站方案?  免费ppt制作网站,有没有值得推荐的免费PPT网站?  长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?  Java解压缩zip - 解压缩多个文件或文件夹实例  宝塔建站教程:一键部署配置流程与SEO优化实战指南  太平洋网站制作公司,网络用语太平洋是什么意思?  建站之星安装失败:服务器环境不兼容?  ,购物网站怎么盈利呢?  小型网站制作HTML,*游戏网站怎么搭建?  沈阳制作网站公司排名,沈阳装饰协会官方网站?  C#如何使用XPathNavigator高效查询XML  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  制作销售网站教学视频,销售网站有哪些?  专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?  ,在苏州找工作,上哪个网站比较好?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  家庭建站与云服务器建站,如何选择更优?  建站VPS能否同时实现高效与安全翻墙?  如何快速搭建个人网站并优化SEO?  制作宣传网站的软件,小红书可以宣传网站吗?  如何挑选最适合建站的高性能VPS主机?  ,柠檬视频怎样兑换vip?  如何在阿里云域名上完成建站全流程?  微信小程序 input输入框控件详解及实例(多种示例)  Android自定义listview布局实现上拉加载下拉刷新功能  如何基于云服务器快速搭建网站及云盘系统?  定制建站是什么?如何实现个性化需求?  如何快速登录WAP自助建站平台?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  如何用搬瓦工VPS快速搭建个人网站?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  建站之星如何修改网站生成路径?  c++ stringstream用法详解_c++字符串与数字转换利器  官网自助建站平台指南:在线制作、快速建站与模板选择全解析  微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?  活动邀请函制作网站有哪些,活动邀请函文案?  子杰智能建站系统|零代码开发与AI生成SEO优化指南  5种Android数据存储方式汇总  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  如何在IIS服务器上快速部署高效网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。