返回顶部
首页 > 资讯 > 移动开发 >Android中dip、dp、sp、pt和px的区别详解
  • 576
分享到

Android中dip、dp、sp、pt和px的区别详解

dppxdipptAndroid 2022-06-06 10:06:18 576人浏览 独家记忆
摘要

1、概述过去,程序员通常以像素为单位设计计算机用户界面。例如:图片大小为80×32像素。这样处理的问题在于,如果在一个每英寸点数(dpi)更高的新显示器上运行该程序,则用户界面

1、概述
过去,程序员通常以像素为单位设计计算机用户界面。例如:图片大小为80×32像素。这样处理的问题在于,如果在一个每英寸点数(dpi)更高的新显示器上运行该程序,则用户界面会显得很小。在有些情况下,用户界面可能会小到难以看清内容。由此我们采用与分辨率无关的度量单位来开发程序就能够解决这个问题。Android应用开发支持不同的度量单位。

2、度量单位含义
dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。
dp: dip是一样的
px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。
pt: point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用;
sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。
in(英寸):长度单位。
mm(毫米):长度单位。

3、度量单位的换算公式
在android源码包TypedValue.java中,我们看如下函数:
代码如下:
  public static float applyDimension(int unit, float value,
   DisplayMetrics metrics)
   {
 switch (unit) {
 case COMPLEX_UNIT_PX:
     return value;
 case COMPLEX_UNIT_DIP:
     return value * metrics.density;
 case COMPLEX_UNIT_SP:
     return value * metrics.scaledDensity;
 case COMPLEX_UNIT_PT:
     return value * metrics.xdpi * (1.0f/72);
 case COMPLEX_UNIT_IN:
     return value * metrics.xdpi;
 case COMPLEX_UNIT_MM:
     return value * metrics.xdpi * (1.0f/25.4f);
 }
 return 0;
    }

  该函数功能:是把各单位换算为像素。
   metrics.density:默认值为DENSITY_DEVICE / (float) DENSITY_DEFAULT;
   metrics.scaledDensity:默认值为DENSITY_DEVICE / (float) DENSITY_DEFAULT;
   metrics.xdpi:默认值为DENSITY_DEVICE;
   DENSITY_DEVICE:为屏幕密度
   DENSITY_DEFAULT:默认值为160
4、屏幕密度:表示每英寸有多少个显示点,与分辨率是两个不同的概念。
Android主要有以下几种屏:如下表     

Tyep

宽度

Pixels

高度

Pixels

尺寸

Range(inches)

屏幕密度

QVGA

240

320

2.6-3.0

low

WQVGA

240

400

3.2-3.5

low

FWQVGA 

240

432

3.5-3.8

low

HVGA 

320

480

3.0-3.5

Medium

WVGA 

480

800

3.3-4.0

High

FWVGA

480

854

3.5-4.0

High

WVGA

480

800

4.8-5.5

Medium

FWVGA 

480

854

5.0-5.8

Medium

备注

目前android默认的low=120 ;Medium =160; High = 240


5、综上所述   
据px = dip * density / 160,则当屏幕密度为160时,px = dip
根据 Google 的建议,TextView 的字号最好使用 sp 做单位,而且查看TextView的源码可知Android默认使用sp作为字号单位。将dip作为其他元素的单位。
您可能感兴趣的文章:android计算pad或手机的分辨率/像素/密度/屏幕尺寸/DPI值的方法android app icon 图标大小尺寸详解Android应用中屏幕尺寸的获取及dp和px值的转换Android编程实现屏幕自适应方向尺寸与分辨率的方法Android的单位以及屏幕分辨率详解Android 图片切换器(dp、sp、px) 的单位转换器解析android中的dip,dp,px,sp和屏幕密度Android中的常用尺寸单位(dp、sp)快速入门教程


--结束END--

本文标题: Android中dip、dp、sp、pt和px的区别详解

本文链接: https://lsjlt.com/news/27575.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Android中dip、dp、sp、pt和px的区别详解
    1、概述过去,程序员通常以像素为单位设计计算机用户界面。例如:图片大小为80×32像素。这样处理的问题在于,如果在一个每英寸点数(dpi)更高的新显示器上运行该程序,则用户界面...
    99+
    2022-06-06
    dp px dip pt Android
  • Android dip,px,pt,sp 的区别详解
    dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐...
    99+
    2022-06-06
    px dip pt Android
  • 解析android中的dip,dp,px,sp和屏幕密度
    1. dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA...
    99+
    2022-06-06
    dp px dip Android
  • Android 中SP与DP的区别实例详解
    从一开始写Android程序,就被告知这些常识 1.长度宽度的数值要使用dp作为单位放入dimens.xml文件中 2.字体大小的数值要使用sp作为单位,也放入dimens....
    99+
    2022-06-06
    dp Android
  • css px和pt的区别
    本篇内容主要讲解“css px和pt的区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“css px和pt的区别”吧!1、px和pt,一个是设备坐标,一个是逻辑坐标,两者不同。2、pt是绝对单位...
    99+
    2023-06-20
  • 简单谈谈Android中SP与DP的区别
    从一开始写Android程序,就被告知这些常识 一、dp(或者dip device independent pixels) 一种基于屏幕密度的抽象单位。在每英寸160点的显示器...
    99+
    2022-06-06
    dp Android
  • css中px和pt的区别有哪些
    这篇文章主要介绍了css中px和pt的区别有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 区别:pt是绝对...
    99+
    2024-04-02
  • 详解Android应用中屏幕尺寸的获取及dp和px值的转换
    获取屏幕尺寸 通过WindowManager获取 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().g...
    99+
    2022-06-06
    dp px Android
  • 基于Android中dp和px之间进行转换的实现代码
    在xml布局文件中,我们既可以设置px,也可以设置dp(或者dip)。一般情况下,我们都会选择使用dp,这样可以保证不同屏幕分辨率的机器上布局一致。但是在代码中,如何处理呢?很...
    99+
    2022-06-06
    dp px Android
  • Android中src和background的区别详解
    ImageView中XML属性src和background的区别: background会根据ImageView组件给定的长宽进行拉伸,而src就存放的是原图的大小,不会进行拉...
    99+
    2022-06-06
    src background Android
  • Android中asset和raw的区别详解
    *res/raw和assets的相同点: 1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。 *res/raw和assets的不同点: 1.res...
    99+
    2022-06-06
    asset Android
  • html5中px和em的区别有哪些
    本篇内容主要讲解“html5中px和em的区别有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“html5中px和em的区别有哪些”吧! ...
    99+
    2024-04-02
  • css中px、em和rem的有哪些区别
    小编给大家分享一下css中px、em和rem的有哪些区别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言em 和 rem 都是...
    99+
    2024-04-02
  • CSS中px和em属性的区别是什么
    这篇文章给大家介绍CSS中px和em属性的区别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。详解px和em的特点和区别象素px是我们在定义CSS中经常用到的尺寸大小单位,而em在...
    99+
    2024-04-02
  • CSS中单位px和em的区别是什么
    本篇内容介绍了“CSS中单位px和em的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!彻底弄懂C...
    99+
    2024-04-02
  • Android MotionEvent中getX()和getRawX()的区别实例详解
    Android MotionEvent中getX()和getRawX()的区别实例详解 实例代码: public class Res extends Activity imp...
    99+
    2022-06-06
    Android
  • Android中的Dalvik和ART详解及区别分析
    要想知道Dalvik和ART区别分析,首先我们要分别知道这两者是什么? 什么是Dalvik? Dalvik是Google公司自己设计用于Android平台的虚拟机。 Dalvi...
    99+
    2022-06-06
    art Android
  • 详解JS中? ?和?. 和||的区别
    目录1、 与 || 的区别2、 和 . 的区别1、 与 || 的区别 1)相同点: 和 || 的用法相同,都是前后是值,中间用符号连接,根据前面的值来判断最终是返回前面的值还是后面...
    99+
    2024-04-02
  • css中px和em,rem单位的区别是什么
    这篇文章主要讲解了“css中px和em,rem单位的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css中px和em,rem单位的区别是什么”吧!...
    99+
    2024-04-02
  • Servlet中/和/*的区别详解
    目录本文提纲版本约定✍正文点拨“市面上”的错误答案1、/用于Servlet,demo:这个urlPatterns是合法的。只不过它属于精确匹配,也就是说别看它中间有*,仍...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作