188js——AG————安卓系统中dp,px,pt,sp 的区别 以及dp 和pt px dp互转

安全检查中...
请打开浏览器的javascript,然后刷新浏览器
< 浏览器安全检查中...
还剩 5 秒&dp&px&pt&sp 的区别 以及dp 和 px 互转
dp = dip : device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。
px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。
pt: point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用;
sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。
由此,根据 google 的建议,TextView 的字号最好使用 sp 做单位,而且查看
的源码可知 Android 默认使用 sp 作为字号单位。
在 Android 中,
1pt 大概等于 2.22sp
以上供参考,如果 UI 能够以 sp 为单位提供设计是最好的,如果设计中没有 sp
的概念,则开发人员也可以通过适当的换算取近似值。
过去,程序员通常以像素为单位设计计算机用户界面。例如,定义一个宽度为300像素的表单字段,列之间的间距为5个像素,图标大小为16×16像素 等。这样处理的问题在于,如果在一个每英寸点数(dpi)更高的新显示器上运行该程序,则用户界面会显得很小。在有些情况下,用户界面可能会小到难以看清 内容。
与分辨率无关的度量单位可以解决这一问题。Android支持下列所有单位。
px(像素):屏幕上的点。
in(英寸):长度单位。
mm(毫米):长度单位。
pt(磅):1/72英寸。
dp(与密度无关的像素):一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp = 1px。
dip:与dp相同,多用于android/ophone示例中。
sp(与刻度无关的像素):与dp类似,但是可以根据用户的字体大小首选项进行缩放。
为了使用户界面能够在现在和将来的显示器类型上正常显示,建议大家始终使用sp作为文字大小的单位,将dip作为其他元素的单位。当然,也可以考虑使用矢量图形,而不是用位图
------------------------------------------------------------------------------------
dp:A dp is a density-independent pixel that corresponds to the physical size of a pixel at 160 dpi(dots per inch:每英寸点数).
dp也就是dip:device independent pixels(设备独立像素)
dp是一种与密度无关的像素单位,在每英寸160点的屏幕上,1dp = 1px
不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素
&Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/clickme"
android:layout_marginTop="20dp" /&
sp:An sp is the same base unit, but is scaled by the user's preferred text size (it’s a scale-independent pixel), so you should use this measurement unit when defining text size (but never for layout sizes).
scaled pixels(刻度像素). 主要用于定义字体的大小,而从来不再layout上使用
&TextView android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="20sp" /&
px:pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多
总结: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 和 dp 互转换
package com.hujl.
import android.content.C
public class DensityUtil {
* 根据手机的分辨率从 dp 的单位 转成为 px(像素)
public static int dip2px(Context context, float dpValue) {
final float scale = context.getResources().getDisplayMetrics().
return (int) (dpValue * scale + 0.5f);
* 根据手机的分辨率从 px(像素) 的单位 转成为 dp
public static int px2dip(Context context, float pxValue) {
final float scale = context.getResources().getDisplayMetrics().
return (int) (pxValue / scale + 0.5f);
无法找到原作者,附上转载地址:http://blog.csdn.net/miner_lee/article/details/8650049
Copyright (C) , All Rights Reserved.
版权所有 闽ICP备号
processed in 0.039 (s). 12 q(s)设计师必读“px、pt、ppi、dpi、dp、sp”这些字符到底什么意思?
设计师必读“px、pt、ppi、dpi、dp、sp”这些字符到底什么意思?
网络营销讲师
《人与动物最大的区别是什么》上学时期老师总是拿这个作为命题来给同学们提问,不出意外大体的解释都是这样的“人类于动物们最根本的区别在于人有意识,意识是人脑特有的机能,使得我们充满的智慧,并且会使用这种智慧去创造并使用高级工具去创造家园,相反除了人以外其他的动物都不具有意识,只有本能。所以人有了意识就有了思考,所以高于其他动物”想到这里...明明可以靠本事吃饭的非要动脑力!每次打开陪伴我已久的photoshop时,一大堆由字母组成的字符就会映入我眼帘,“px、pt、ppi、dpi、dp、sp等等”。下面就让我们解读一下这些乱码七糟的字符到底是什么意思:px:pixel { 像素 }简单点来说就是电子屏幕上的最基本的单位了,如电脑显示器常说得分辨率 ,就可以说整个屏幕是由1920个像素点与1080个像素点组成的pt:point { 点 }印刷厂用的单位,大小为1/27英寸ppi:pioxel per inch { 每英寸像素数 }这个值越高,屏幕就越清晰,如普清-高清-超清这样的规律dpi:dot per inch { 每英寸多少点 } 这个值越高,打印机打出来的东西越高清,打印机也就越贵dp:dip,Density-independent pixel { 安卓开发使用的长度单位 } 1dp表示在屏幕像素点密度为160ppi时1px的长度sp:scale-independent pixel&{ 安卓开发时候用的字体大小单位 } 这个就是字号的大小了,比较好理解他们看起来都很相似,但是详细解读起来还是有不同,下面让我们进一步分析两者间的区别PT / PX:当使用Photoshop中新建画布分辨率为ppi时,pt=px,当新建画布分辨率是144ppi时,1pt=2pxDP / PX :MDPI时1dp等于1px,LDPI:MDPI:HDPI:XDPI:XXDPI=0.75:1:1.5:2:3,这个就是作为UI切图时常用的@1x、@2x、@3x的换算方式DP / SP:DP是Android的长度单位,SP是Android的字单位,在制作Android的时候,一般情况只为@2做适配效果,如果新建画布分辨率为72ppi,那么换算机制如下:1pt=1px=1/2dp=1/2sp也就是说在适配标注的时候,一个宽为10px的距离可以标注出1 pt或者是5dp。而一个大小为10px的文字,可以标注为5sp那适配使用的@1x、@2x、@3x又是怎么回事呢?下次再告诉你吧!
本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。
网络营销讲师
百家号 最近更新:
简介: 互联网+各个行业,品世间互联,读当今时事
作者最新文章温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
px:像素 (pixels)就是屏幕上的像素点,比个如说:一个240x320的屏幕,就是240x320个像素点组成的。dip:设备独立像素(device independent pixels)顾名思义,就是基于设备的像素单位,现在Android就是推荐用这个,它会根据不同的dpi(每英寸的像素数)来改变自己的大小,在下面转换方法里面会具体介绍。dp:和dip一样样的。sp:放大像素(scaled pixels)一般主要用在作为字体大小的单位来用。(如果在160 dpi下: 1px &= 1dp = 1dip = 1sp )现在来说说这些单位的一些转换关系吧!就以px为基准吧,因为在java代码中设置的参数单位默认就是px。1px = 1个像素点,跟平时用的长度单位差不多,你用尺子量都行。dip和px之间的比例关系就是:dip / px &= &目标dpi / 标准dpi其中目标dpi就是你所用的设备的屏幕密度,标准dpi取160,也可以直接看下面的关系式: px = dip * density / 160 dip = px * 160 / density(上面说了 dp和dip一样)上一段java里面两者的转换方法:public static int dip2px(Context mContext, float dp) { &
& & & & float scale = mContext.getResources().getDisplayMetrics().density; &
& & & & return (int) (dp * scale + 0.5f); &
public static int px2dip(Context mContext, float px) { &
& & & & float scale = mContext.getResources().getDisplayMetrics().density; &
& & & & return (int) (px / scale + 0.5f); &
}对于sp 一般都是用来作为字体大小textSize的单位来用的,也是基于设备的一个单位,和dp有点类似。先提一个字体的单位吧&pt &磅 (point)等于1/72英寸,一般在photoshop之类的软件里面会看到。pt和sp两者之间的转换大致是 &1pt 大概等于 2.22sp :应该是这么算得: 令: pt = x * sp =&& 1 *&density&/ 72 = x * 1 *&density&/ 160& =& & &x = 160 / 72 = 2.2222&谷歌的文档里面是建议我们 字体最好全部用sp &其它控件最好用dp或dip,尽量少用px(除非你只针对某个分辨率开发)。这样能节省不少分辨率适配的工作,剩下的主要就是把布局中的图片进行适配了,当然最好用矢量图片。最近开始使用 Android Studio 来开发,感觉还不错~ 0.0 ~
阅读(258)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'关于Android开发中px、dip、dp、sp等单位的概念和转换关系',
blogAbstract:'每一个Android开发者,基本都会遇到屏幕分辨率适配的问题,如果是针对某一个分辨率来开发的话,那直接用px就得了,so easy~ 可是,谁让咱这开源的Android有着N多各种不同分辨率的设备呢!慢慢适配吧~ =。=!~下面先解释一下这些单位:px:像素 (pixels)就是屏幕上的像素点,比个如说:一个240x320的屏幕,就是240x320个像素点组成的。dip:设备独立像素(device independent pixels)顾名思义,就是基于设备的像素单位,现在Android就是推荐用这个,它会根据不同的dpi(每英寸的像素数)来改变自己的大小,在下面转换方法里面会具体介绍。',
blogTag:'分辨率,dp,dip,sp,px',
blogUrl:'blog/static/5',
isPublished:1,
istop:false,
modifyTime:7,
publishTime:1,
permalink:'blog/static/5',
commentCount:1,
mainCommentCount:1,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'爱吃鱼~',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}}

我要回帖

更多关于 px转dp 在线工具 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信