Android手机屏幕px与dp互转的工具类

 更新时间:2019年03月28日 09:23:23   作者:徐刘根   我要评论
今天小编就为大家分享一篇关于Android手机屏幕px与dp互转的工具类,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。dp也就是dip,这个和sp基本类似。如果设置表示长度、高度等属性时可以使用dp 或sp。但如果设置字体,需要使用sp。dp是与密度无关,sp除了与密度无关外,还与scale无关。如果屏幕密度为160,这时dp和sp和px是一 样的。1dp=1sp=1px,但如果使用px作单位,如果屏幕大小不变(假设还是3.2寸),而屏幕密度变成了320。那么原来TextView的宽度 设成160px,在密度为320的3.2寸屏幕里看要比在密度为160的3.2寸屏幕上看短了一半。但如果设置成160dp或160sp的话。系统会自动 将width属性值设置成320px的。也就是160 * 320 / 160。其中320 / 160可称为密度比例因子。也就是说,如果使用dp和sp,系统会根据屏幕密度的变化自动进行转换。

px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。

代码如下:

import android.content.Context;
public class DensityUtil {
  private static float scale;
  /**
   * 根据手机的分辨率从 dp 的单位 转成为 px(像素)
   */
  public static int dip2px(Context context, float dpValue) {
    if (scale == 0) {
      scale = context.getResources().getDisplayMetrics().density;
    }
    return (int) (dpValue * scale + 0.5f);
  }
  /**
   * 根据手机的分辨率从 px(像素) 的单位 转成为 dp
   */
  public static int px2dip(Context context, float pxValue) {
    if (scale == 0) {
      scale = context.getResources().getDisplayMetrics().density;
    }
    return (int) (pxValue / scale + 0.5f);
  }
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • Android获取联系人姓名和电话代码

    Android获取联系人姓名和电话代码

    这篇文章主要为大家详细介绍了Android获取联系人姓名和电话代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • Android中BroadcastReceiver案例讲解

    Android中BroadcastReceiver案例讲解

    今天小编就为大家分享一篇关于Android中BroadcastReceiver案例讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • Android如何防止apk程序被反编译(尊重劳动成果)

    Android如何防止apk程序被反编译(尊重劳动成果)

    作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来,天下痛苦之事莫过于此啊,本文会介绍一种防止apk程序被反编译的方法,感兴趣的朋友可以了解下哦
    2013-01-01
  • 浅扒Android动态设置字体大小的示例

    浅扒Android动态设置字体大小的示例

    本篇文章主要介绍了浅扒Android动态设置字体大小的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • Android中PopupMenu组件的使用实例

    Android中PopupMenu组件的使用实例

    本篇文章主要介绍了Android中PopupMenu组件的使用实例,详细的介绍了PopupMenu组件的使用,具体一定的参考价值,有兴趣的可以了解一下
    2017-07-07
  • Android ViewPager实现左右滑动的实例

    Android ViewPager实现左右滑动的实例

    这篇文章主要介绍了Android ViewPager实现左右滑动的实例的相关资料,这里提供实现代码实现左右滑动的功能,希望能帮助到大家,需要的朋友可以参考下
    2017-08-08
  • Android实现垂直进度条VerticalSeekBar

    Android实现垂直进度条VerticalSeekBar

    这篇文章主要为大家详细介绍了Android实现垂直进度条VerticalSeekBar的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • 获取Android系统唯一识别码的方法

    获取Android系统唯一识别码的方法

    这篇文章主要介绍了获取Android系统唯一识别码的方法,涉及通过编程获取Android系统硬件设备标识的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • 自定义一个theme在不同的sdk环境下继承不同的值

    自定义一个theme在不同的sdk环境下继承不同的值

    可能很多在高版本下编绎apk的同学,可能都曾有和我一样的困惑,就是如何让低版本的用户也能有高版本的体验呢
    2013-01-01
  • Android 保存文件路径方法

    Android 保存文件路径方法

    今天小编就为大家分享一篇Android 保存文件路径方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08

最新评论