Android之px 与 dp, sp换算公式

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

pt: point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用;

sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。

dip: device independent pixels(设备独立像素,相对像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。


Android支持下列所有单位:

px(像素):屏幕上的点。

in(英寸):长度单位。

mm(毫米):长度单位。

pt(磅):1/72英寸。

dp(与密度无关的像素):一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp = 1px。

dip:与dp相同,多用于android/ophone示例中。

sp(与刻度无关的像素):与dp类似,但是可以根据用户的字体大小首选项进行缩放。


PPI = Pixels per inch,每英寸上的像素数,即 "像素密度"

  • xhdpi: 2.0
  • hdpi: 1.5
  • mdpi: 1.0 (baseline)
  • ldpi: 0.75


drawable-ldpi、drawable-mdpi、drawable-hdpi 精度分别为低、中(android默认)、高。
对应的图片大小为:36x36、48x48、72x72。

xxhdpi: 144*144
xhdpi:96*96
hdpi:72*72
mdpi:48*48
ldpi:36*36

dp是虚拟像素,在不同的像素密度的设备上会自动适配,比如:
在320x480分辨率,像素密度为160,1dp=1px
在480x800分辨率,像素密度为240,1dp=1.5px
计算公式:1dp*像素密度/160 = 实际像素数

drawable- hdpi、drawable- mdpi、drawable-ldpi的区别:
(1)drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854)
(2)drawable-mdpi里面存放中等分辨率的图片,如HVGA (320x480)
(3)drawable-ldpi里面存放低分辨率的图片,如QVGA (240x320)
系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。


 ppi的运算方式是:

PPI = √(长度像素数² + 宽度像素数²) / 屏幕对角线英寸数

dp:Density-independent pixels,以160PPI屏幕为标准,则1dp=1px,

dp和px的换算公式 :
dp*ppi/160 = px。比如1dp x 320ppi/160 = 2px。

 

sp:Scale-independent pixels,它是安卓的字体单位,以160PPI屏幕为标准,当字体大小为 100%时, 1sp=1px。

sp 与 px 的换算公式:sp*ppi/160 = px

 

总结得出:

px = dp*ppi/160
dp = px / (ppi / 160)

px = sp*ppi/160
sp = px / (ppi / 160)

dp = sp? 

参考:

[无线手册-4] dp、sp、px傻傻分不清楚[完整] 
http://zhuanlan.zhihu.com/zhezhexiong/19565895

Supporting Different Screens | Android Developers
http://developer.android.com/training/basics/supporting-devices/screens.html#create-bitmaps

Iconography | Android Developers
http://developer.android.com/design/style/iconography.html

Devices and Displays | Android Developers
http://developer.android.com/design/style/devices-displays.html




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/295625.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

05Prism WPF 入门实战 - Navigation

1.概要源码及PPT地址:https://github.com/JusterZhu/wemail视频地址:https://www.bilibili.com/video/BV1KQ4y1C7tg?share\sourcecopy\web本章分为以下三个部分来了解:Part1 视图导航、参数传递Part2 确认导航Part3 导航日志2.详细内容Part1…

常见的http状态码

400 Bad Request1、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。2、请求参数有误。401 Unauthorized当前请求需要用户验证。该响应必须包含一个适用于被请求资源的 WWW-Authenticate 信息头用以询问用户信息。客…

明明没PS,看起来却像PS过的32张照片

全世界只有3.14 % 的人关注了爆炸吧知识现在PS太普遍,以至于人们看到不同寻常的东西,第一时间会怀疑经过技术处理。但也有一些照片,真的没有PS过!1、这些轮胎痕迹令人产生了3D的错觉:2、截然分开的几种景观&#xff0c…

python如何退出命令行_如何退出python命令行

命令行进入python打开cmd——>直接输入python即可直接进入PythonC:UsersAdministrator>pythonPython 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32Type "help", "copyright", "credits" or &q…

TFS全局资源管理

在早期,应用要使用TFS,需要知道TFS名字服务器的地址才能访问TFS,然后调用读写接口存取文件,当应用比较少时,这种方式不会引发什么问题,但目前在淘宝内部,有200多个应用使用TFS做为后端的存储系统…

.net程序运行

contentoftable 目录数据库,把数据存到文件中,还要能有效的读出来。 保存到文件要以一定的结构。 判断数据--》保存到独立的文件夹。(存的时候麻烦,读取的时候方便) 记事本就是用控件。 应用程序要有pe头 ,…

Android之内存溢出(Out Of Memory)的总结

图片越来越多,内存溢出已经成了不得不注意的问题了。 错误日志:11-03 12:36:54.812: ERROR/AndroidRuntime(5084): Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget 内存溢出主要由以下几种情况引起: 1.数据库的cursor没有关闭。 2.构造adapter没…

没有什么是日本牛郎店做不到的......

1 第一眼你看见了啥?▼2 确实很悲伤(dy:李逍遥)▼3 貌似真是这样▼4 我不爱打麻将咋办?▼5 短短十几个字,满满的江湖纷争▼6 少了男主的朋友不要轻易尝试▼7 哦吼▼8 双十一如你所愿,哈哈…

持续集成、持续交付(CI/CD)开篇,先来唠唠嗑

前言现在稍微有点规模的系统,很多都是采用分布式/微服务架构,将一个大系统拆分为很多个功能模块进行开发、测试、发布、管理等,如果全部流程都采用人工的形式进行的话,效率肯定是超级不高效滴。而且现在很多项目都采用极限编程的模…

100例经典炒菜_Python3经典100例(②)

实例6题目:斐波那契数列;分析:利用递归计算斐波那契数列,输入斐波那契数列的n位,调用递归计算出第n位的数列值;代码:#!/usr/bin/python3 # -*- coding: utf-8 -*- # Time : 2018-10-3 21:10 …

分享10个2012年最新发布的jQuery插件

为什么80%的码农都做不了架构师?>>> 日期:2012-5-9 来源:GBin1.com 本文收集了最新的jQuery社区发布的jQuery插件,绝对是你没有见过的,希望大家喜欢! 1. SearchMeme 一个即时搜索的jQuery插件…

监考

中国近现代史纲要人资150230逸夫楼A2012016年1月11日周一14:00-15:50国际结算国金130430逸夫楼A2072016年1月11日周一16:20-18:10高等数学4会统专150130逸夫楼A4102016年1月12日周二14:00-15:50建筑结构与选型城规120131逸夫楼A2092016年1月12日周二16:20-18:10转载于:https://…

Android之解析XML总结(SAX、Pull、Dom三种方式)

常见的解析xml的方式有一下三种:SAX、Pull、Dom解析方式。最近做了一个android版的CSDN阅读器,用到了其中的两种(sax,pull),今天对android解析xml的这三种方式进行一次总结。 今天解析的xml示例(channels.x…

博士毕业的人也会交“智商税”?现实远比我们想象的残酷……

全世界只有3.14 % 的人关注了爆炸吧知识2018 年的那个多事之秋,我终于在人生快要过半的时候拿到了博士学位。大毛和小鱼是我博士期间玩得最好的兄弟,我们三人水平差不多,志向差不多,博士毕业后都进了双非高校。现实不像是想象中那…

UVA-1045 - The Great Wall Game(二分图最佳匹配)

题意:在一个n*n的棋盘上有n个棋子,要求通过移动棋子使棋子的排布满足以下情况之一:呈横行排列;呈纵行排列;呈对角线排列(有两条)。 棋子移动一个单元格的费用为1,总费用为所有棋子的移动费用之和。求最小费用。 分析:因…

聊一聊声明式接口调用与Nacos的结合使用

背景 对于公司内部的 API 接口,在引入注册中心之后,免不了会用上服务发现这个东西。现在比较流行的接口调用方式应该是基于声明式接口的调用,它使得开发变得更加简化和快捷。.NET 在声明式接口调用这一块,有 WebApiClient 和 Refi…

三次握手和四次挥手图解_三次握手和四次挥手简单理解

TCP三次握手TCP标志位TCP在其协议头中使用大量的标志位或者说1位(bit)布尔域来控制连接状态,一个包中有可以设置多个标志位。TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接&#…

分布式搜索ElasticSearch单机与服务器环境搭建

先到http://www.elasticsearch.org/download/下载最新版的elasticsearch运行包,本文写时最新的是0.19.1,作者是个很勤快的人,es的更新很频繁,bug修复得很快。下载完解开有三个包:bin是运行的脚本,config是设置文件&…

Android之基于BaseAdapter和SimpleAdapter的GridView

GridView 第一种方式:用SimpleAdapter 先来贴出本文代码运行的结果: 本文需要添加/修改3个文件:main.xml、night_item.xml、JAVA源代码。 main.xml源代码如下,本身是个GirdView,用于装载Item: <?xml version="1.0" encoding="utf-8"?> <…

IOS开发CAKeyframeAnimation的基本使用与keypath的列举

2019独角兽企业重金招聘Python工程师标准>>> CAKeyframeAnimation跟CABasicAnimation的区别是&#xff1a;CABasicAnimation只能从一个数值(fromValue)变到另一个数值(toValue)&#xff0c;而CAKeyframeAnimation会使用一个NSArray保存这些数值 - (void)value {CAKe…