美文网首页Android轮子
安卓尺寸工具类

安卓尺寸工具类

作者: _青_9609 | 来源:发表于2019-12-23 13:40 被阅读0次

DimensionUtil - 尺寸工具类


简介

DimensionUtil是一个用于尺寸转换的工具类,主要的用途是将SP转换为PX

主要功能

  • 将DP单位的数值转换为PX单位的数值。
  • 将其他TypedValue的数值转换为PX单位的数值。
  • 将PX单位的数值转换为DP单位的数值。
  • 获取屏幕显示区域的宽度。
  • 获取屏幕显示区域的高度。
  • 获取状态栏高度,添加了一个状态栏占位控件。
  • 获取导航栏高度。
  • 支持设置不同的屏幕密度进行计算。

集成方法

使用Gradle构建工具集成:

dependencies {
    // android support 工程
    implementation 'com.bonepeople.android.lib:DimensionUtil:1.1'
    // androidX 工程
    implementation 'com.bonepeople.android.lib:DimensionUtil:1.3.0'
}

使用示例

  • 获取PX单位的数值

    float height = 5.5f;
    int px = DimensionUtil.getPx(height);
    
    float textSize = 5.5f;
    int px = DimensionUtil.getPx(android.util.TypedValue.COMPLEX_UNIT_SP, textSize);
    
  • 获取DP单位的数值

    int width = 44;
    float dp = DimensionUtil.getDp(width);
    
  • 获取屏幕显示区域的宽度

    int width = DimensionUtil.getDisplayWidth();
    
  • 获取屏幕显示区域的高度

    int height = DimensionUtil.getDisplayHeight();
    
  • 获取状态栏高度/导航栏高度

    此处获取的是手机状态栏高度的像素值,在java代码中可以直接调整控件的位置。

    int statusBarHeight = DimensionUtil.getStatusBarHeight();
    int navigationBarHeight = DimensionUtil.getNavigationBarHeight();
    pageContainer.setPadding(0, statusBarHeight, 0, 0);
    

    针对布局中无法引用状态栏高度的情况,可以使用StatusBarHolder控件达到状态栏占位的目的。

    <android.support.constraint.ConstraintLayout
          android:layout_width="match_parent"
          android:layout_height="match_parent">
    
          <com.bonepeople.android.lib.dimensionutil.StatusBarHolder
              android:id="@+id/statusBarHolder"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              app:layout_constraintStart_toStartOf="parent"
              app:layout_constraintTop_toTopOf="parent" />
    
          <TextView
              android:id="@+id/textView_title"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              app:layout_constraintTop_toBottomOf="@id/statusBarHolder" />
      </android.support.constraint.ConstraintLayout>
    

工具类默认使用系统的屏幕密度进行计算,如果App设置了自己的屏幕密度,可以通过setDefaultMetrics(DisplayMetrics)方法进行设置,新设置的屏幕密度会保存在静态变量中供后续使用。

DimensionUtil.setDefaultMetrics(getResources().getDisplayMetrics());

混淆说明

本项目对混淆无任何要求。

simple项目展示

示例APP

项目地址

https://github.com/bonepeople/DimensionUtil
如果这个项目对你有帮助,欢迎来github加个星
如果有任何改进建议也欢迎提交到https://github.com/bonepeople/DimensionUtil/issues

相关文章

  • 安卓尺寸工具类

    DimensionUtil - 尺寸工具类 简介 DimensionUtil是一个用于尺寸转换的工具类,主要的用途...

  • 安卓工具类

    原文:https://www.cnblogs.com/AbrahamCaiJin/p/7154625.html A...

  • Android 常用开源库(四)

    其他 5.1工具类 AndroidUtilCode 强大易用的安卓工具类库 RxTools Android开发人员...

  • 安卓权限工具类

    安卓6.0后敏感权限需要动态申请,近期对之前的权限工具类做了整理和改进。目标,让敲代码更加可控的ctrl c.此...

  • 安卓时间工具类

  • Android屏幕尺寸

    安卓屏幕常见尺寸 屏幕尺寸 对应图标尺寸标准 屏幕密度 比例 xxxhdpi...

  • AndroidUtilCode 最强大的工具类

    一、前言: AndroidUtilCode 是一个强大易用的安卓工具类库,它合理地封装了安卓开发中常用的函数,具...

  • RN获取缓存

    需求如图 封装一个缓存的工具类 调用 安卓代码 ios端代码

  • AndroidUtilCode 工具类

    一、简介:AndroidUtilCode 是一个强大易用的安卓工具类库,它合理地封装了安卓开发中常用的函数,具有完...

  • 安卓SharePreference工具类封装

    这个工具的封装是采用单列模式,将类本身进行实例化,在构造方法里面进行SharePreference初始化,然后在s...

网友评论

    本文标题:安卓尺寸工具类

    本文链接:https://www.haomeiwen.com/subject/fldznctx.html