精华内容
下载资源
问答
  • px:即像素,是手机的物理尺寸,如手机...px换算dpi: dpi就是每英寸包含的点数,很好算,根据勾股定理,如手机为1920*1080,可以根据勾股定理得出对角线的像素为多少 那么再用对角线的像素乘以屏幕规格就得出px...

    px:即像素,是手机的物理尺寸,如手机1920*1080就是宽度方向上有1080个像素点,高度方向上有1920个像素点

    dpi:是一个相对尺寸,即每英寸的像素点数

    dp:一个相对单位,与手机物理像素点无关。

    px换算dpi:

    dpi就是每英寸包含的点数,很好算,根据勾股定理,如手机为1920*1080,可以根据勾股定理得出对角线的像素为多少

    那么再用对角线的像素乘以屏幕规格就得出px换算dpi的公式了

    如,这里手机为1920*1080的,5英寸,套入公式算得每英寸有440个像素点

    px换算为dp:

    在Android中规定,以160dpi为基准:1dp=1px

    那么只要知道这个手机的dpi就可以计算此时这个手机的px和dp的关系了

    以1920*1080,5英寸手机为例,计算得dpi为440,那么此时dp=440/160 px

    展开全文
  • 以小米2s为例,dpi是320,即密度指数是2,屏幕是4.3英寸,分辨率是1280*...我这么算都不对,根据分辨率和dpi,长宽应该是4*2.25英寸才对,然后勾股定理,应该是4.589英寸的屏幕,但是官方标的是4.3。是哪里算的不对?
  • 你是安卓应用UI设计师吗?你是否被安卓手机纷繁的屏幕搞得晕头转向?...你知道dp和px的关系怎样吗?你了解屏幕差异对设计的影响吗?进来看看吧,你将从这里找到答案。 不少设计师和工程师都被安卓

        本文来自:http://blog.csdn.net/wawxf2008/article/details/47379577

    你是安卓应用UI设计师吗?你是否被安卓手机纷繁的屏幕搞得晕头转向?你知道在什么尺寸中设计效果图经济有效吗?你知道屏幕密度是怎么回事吗?你知道dp和px的关系怎样吗?你了解屏幕差异对设计的影响吗?进来看看吧,你将从这里找到答案。

    不少设计师和工程师都被安卓设备纷繁的屏幕搞得晕头转向,我既做UI设计,也做过一点安卓界面布局,刚好对这块内容比较熟悉,也曾在公司内部做过相关的讲座,在此,我将此部分知识重新梳理出来分享给大家!


    1、了解几个概念

    (1)分辨率。分辨率就是手机屏幕的像素点数,一般描述成屏幕的“宽×高”,安卓手机屏幕常见的分辨率有480×800、720×1280、1080×1920等。720×1280表示此屏幕在宽度方向有720个像素,在高度方向有1280个像素。

    (2)屏幕大小。屏幕大小是手机对角线的物理尺寸,以英寸(inch)为单位。比如某某手机为“5寸大屏手机”,就是指对角线的尺寸,5寸×2.54厘米/寸=12.7厘米。

    (3)密度(dpi,dots per inch;或PPI,pixels per inch)。从英文顾名思义,就是每英寸的像素点数,数值越高当然显示越细腻。假如我们知道一部手机的分辨率是1080×1920,屏幕大小是5英寸,你能否算出此屏幕的密度呢?哈哈,中学的勾股定理派上用场啦!通过宽1080和高1920,根据勾股定理,我们得出对角线的像素数大约是2203,那么用2203除以5就是此屏幕的密度了,计算结果是440。440dpi的屏幕已经相当细腻了。


    2、实际密度与系统密度

    尚未发现他处使用“实际密度”和“系统密度”这两个词汇,暂时由我如此定义吧。

    “实际密度”就是我们自己算出来的密度,这个密度代表了屏幕真实的细腻程度,如上述例子中的440dpi就是实际密度,说明这块屏幕每寸有440个像素。5英寸1080×1920的屏幕密度是440,而相同分辨率的4.5英寸屏幕密度是490。如此看来,屏幕密度将会出现很多数值,呈现严重的碎片化。而密度又是安卓屏幕将界面进行缩放显示的依据,那么安卓是如何适配这么多屏幕的呢?

    其实,每部安卓手机屏幕都有一个初始的固定密度,这些数值是120、160、240、320、480,我们权且称为“系统密度”。大家发现规律没有?相隔数值之间是2倍的关系。一般情况下,240×320的屏幕是低密度120dpi,即ldpi;320×480的屏幕是中密度160dpi,即mdpi;480×800的屏幕是高密度240dpi,即hdpi;720×1280的屏幕是超高密度320dpi,即xhdpi;1080×1920的屏幕是超超高密度480dpi,即xxhdpi。

    安卓对界面元素进行缩放的比例依据正是系统密度,而不是实际密度。


    3、一个重要的单位dp

    dp也可写为dip,即density-independent pixel。你可以想象dp更类似一个物理尺寸,比如一张宽和高均为100dp的图片在320×480和480×800的手机上“看起来”一样大。而实际上,它们的像素值并不一样。dp正是这样一个尺寸,不管这个屏幕的密度是多少,屏幕上相同dp大小的元素看起来始终差不多大。

    另外,文字尺寸使用sp,即scale-independentpixel的缩写,这样,当你在系统设置里调节字号大小时,应用中的文字也会随之变大变小。



    4、dp与px的转换

    在安卓中,系统密度为160dpi的中密度手机屏幕为基准屏幕,即320×480的手机屏幕。在这个屏幕中,1dp=1px。

    100dp在320×480(mdpi,160dpi)中是100px。那么100dp在480×800(hdpi,240dpi)的手机上是多少px呢?我们知道100dp在两个手机上看起来差不多大,根据160与240的比例关系,我们可以知道,在480×800中,100dp实际覆盖了150px。因此,如果你为mdpi手机提供了一张100px的图片,这张图片在hdpi手机上就会拉伸至150px,但是他们都是100dp。

    中密度和高密度的缩放比例似乎可以不通过160dpi和240dpi计算,而通过320px和480px也可以算出。但是按照宽度计算缩放比例不适用于超高密度xhdpi和超超高密度xxhdpi了。即720×1280中1dp是多少px呢?如果用720/320,你会得出1dp=2.25px,实际这样算出来是不对的。dp与px的换算要以系统密度为准,720×1280的系统密度为320,320×480的系统密度为160,320/160=2,那么在720×1280中,1dp=2px。同理,在1080×1920中,1dp=3px。

    大家可以记住下面这个比例,dp与px的换算就十分easy啦!

    ldpi:mdpi:hdpi:xhdpi:xxhdpi=3:4:6:8:12,我们发现,相隔数字之间还是2倍的关系。计算的时候,以mdpi为基准。比如在720×1280(xhdpi)中,1dp等于多少px呢?mdpi是4,xhdpi是8,2倍的关系,即1dp=2px。反着计算更重要,比如你用PhotoShop在720×1280的画布中制作了界面效果图,两个元素的间距是20px,那要标注多少dp呢?2倍的关系,那就是10dp!



    当安卓系统字号设为“普通”时,sp与px的尺寸换算和dp与px是一样的。比如某个文字大小在720×1280的PS画布中是24px,那么告诉工程师,这个文字大小是12sp。


    5、建议在xdhpi中作图

    安卓手机有这么多屏幕,我到底依据哪种屏幕作图呢?没有必要为不同密度的手机都提供一套素材,大部分情况下,一套就够了。

    现在手机比较高的分辨率是1080×1920,你可以选择这个尺寸作图,但是图片素材将会增大应用安装包的大小。并且尺寸越大的图片占用的内存也就越高。如果你不是设计ROM,而是做一款应用,我建议大家用PS在720×1280的画布中作图。这个尺寸兼顾了美观性、经济性和计算的简单。美观性是指,以这个尺寸做出来的应用,在720×1280中显示完美,在1080×1920中看起来也比较清晰;经济性是指,这个分辨率下导出的图片尺寸适中,内存消耗不会过高,并且图片文件大小适中,安装包也不会过大;计算的简单,就是1dp=2px啊,多好计算啊!

    做出来的图片,记着让界面工程师放进drawable-xhdpi的资源文件夹中。


    6、屏幕的宽高差异

    在720×1280中作图,要考虑向下兼容不同的屏幕。通过计算我们可以知道,320×480和480×800的屏幕宽度都是320dp,而720×1280和1080×1920的屏幕宽度都是360dp。它们之间有40dp的差距,这40dp在设计中影响还是很大的。如下图蝴蝶图片距离屏幕的左右边距在320dp宽的屏幕和360dp宽的屏幕中就不一样。




    不仅宽度上有差异,高度上的差异更加明显。对于天气等工具类应用,由于界面一般是独占式的,更要考虑屏幕之间的比例差异。




    如果想消除这些比例差异,可以通过添加布局文件来实现。一般情况下,布局文件放在layout文件夹中,如果要单独对360dp的屏幕进行调整,你可以单做做一个布局文件放在layout-w360dp中;不过,最好是默认针对360dp的屏幕布局(较为主流),然后对320dp的屏幕单独布局,将布局文件放到layout-w320dp中;如果你想对某个特殊的分辨率进行调整,那么你可以将布局文件放在标有分辨率的文件夹中,如layout-854×480。


    7、几个资源的文件夹

    在720×1280中做了图片,要让开发人员放到drawable-xhdpi的资源文件夹中,这样才可以显示正确。个人认为仅提供一套素材就可以了,可以测试一下应用在低端手机上运行是否流畅,如果比较卡顿,可以根据需要提供部分mdpi的图片素材,因为xhdpi中的图片运行在mdpi的手机上会比较占内存。

    以应用图标为例,xhdpi中的图标大小是96px,如果要单独给mdpi提供图标,那么这个图标大小是48px,放到drawable-mdpi的资源文件夹中。各个资源文件夹中的图片尺寸同样符合ldpi:mdpi:hdpi:xhdpi:xxhdpi=3:4:6:8:12的规律。


    如果你把一个高2px的分割线素材做成了9.png图片,你想让细线在不同密度中都是2px,而不被安卓根据密度进行缩放,怎么办?你可以把这个分割线素材放到drawable-nodpi中,这个资源文件夹中的图片,将按照实际像素大小进行显示,而不会被安卓根据密度进行缩放。即在mdpi中细线是2px(2dp),在xhdpi中细线是2px(1dp)。


    以上是对安卓屏幕的初步总结,不知道你看完后是豁然开朗,还是一头雾水?这篇文章主要为了实用起见,避开了过多深入的分析,如果你还有什么疑问,可以留言。


    ----------------------------------------------------------


    最后补充一下,不少朋友问我安卓平板的设计,提到最多的是1280×800的分辨率,这个分辨率的平板一般是10.1寸的中密度屏幕,直接在PS中建立1280×800的画布,提取之后的素材让开发放到drawable-mdpi中即可。并且中密度的平板中,1dp=1px,比较好换算单位。


    展开全文
  • Android--dpidp与px对应关系及换算

    千次阅读 2017-09-18 10:58:30
    在Android的UI设计中和页面编程布局的过程中,我们经常会接触到分辨率,dpidp,px这些概念,有必要对它们进行一下梳理总结,这篇短小精湛的博客就用一张图来概括了这几个概念的对应关系,以便忘了的时候回来翻翻...

    在Android的UI设计中和页面编程布局的过程中,我们经常会接触到分辨率,dpi,dp,px这些概念,有必要对它们进行一下梳理和总结,这篇短小精湛的博客就用一张图来概括了这几个概念的对应关系,以便忘了的时候回来翻翻看。


    不多废话,直接上图:



    这样一来换算就比较方便了,例如我们在720P的屏幕上使用了一个100dp的ImageView,那么在LDPI文件夹中对应的图片尺寸就应该是75px,MDPI中是100px,HDPI中是150px。就这样根据换算比例来计算,就可以完整的算出所有控件和资源的比例和尺寸。这些知识我们以前都知道,但是都是比较零碎和片面的,但是经过整理以后,是不是比较清晰一点了呢?


    展开全文
  • PX、DP和SP之间的换算

    2017-06-29 18:22:41
    在Android开发中,尺寸换算可以说既简单又复杂,而且还比较碎,特别是屏幕适配的时候...这里要解释一下密度的概念,密度(dpi):每英寸包含的像素个数(单位是dpi),1dp实际上相当于密度为160dpi的屏上的一个点。可否理

    这里写图片描述

    在Android开发中,尺寸换算可以说既简单又复杂,而且还比较碎,特别是屏幕适配的时候肯定会用到他们。今天就来总结一下他们三者的关系,首先说下他们都是什么。

    px:像素单位。最基础的图像构成元素单位
    dp:与密度无关的像素,这是一个基于屏幕物理密度的抽象单位。
    这里要解释一下密度的概念,密度(dpi):每英寸包含的像素个数(单位是dpi),1dp实际上相当于密度为160dpi的屏上的一个点。可否理解为物理尺寸?也就是说,如果屏幕物理密度是160dpi时,dp和px是等效的。
    换算公式 1: px = dp * (dpi / 160)
    sp:同dp相似,但还会根据用户的字体大小偏好来缩放(建议使用sp作为文本的单位,其它用dip)

    咱们废话不多说,直接上表格,通过这个表格你会非常快速的定位到你要找的内容。


    宽×高(标准值) 240×320 320×480 480x800 720x1280 1080x1920 1440×2560
    DPI等级 LDPI MDPI HDPI XHDPI XXHDPI XXXHDPI
    DPI数值 (density) 120 160 240 320 480 640
    对应比例 3 4 6 8 12 16
    1DP=?PX 0.75 1 1.5 2 3 4

    注:density值表示每英寸有多少个显示点,与分辨率是两个概念。
    MDPI为baseline,其他均以此为基准,在此设备上,1dp = 1px

    下面附上开发中用到的dp和px相互转换的工具类。sp和dp在开发中是同等对待的,只是sp是用来对文字的大小的。其他的全用dp就好。

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

    这个工具类在网上一大推,而且基本都一样,加0.5f是有个偏移值,确保精度不流失。scale是在这个类DisplayMetrics中定义的全局变量,其实这个值就是当前手机的density/160。

    展开全文
  • 一般以 纵向像素×横向像素 表示,如1920*1080dpi--------------------------每英寸上的像素点数(斜角的px数目 ÷ 斜角的inch数目),dot per inch的缩写,与屏幕尺寸屏幕分辨率有关。 以三星C9 pro为例,官方...
  • 在android开发中,经常会看到dp、dip、dpi、px、sp这些单位,特别是dp和sp开发者会经常用到。很多人只是知道用,但是这些单位到底是什么、表示什么意思,相信很多初学者依然是云里雾里。今天就跟大家一起学习下这些...
  • 获取手机_平板等Android设备的屏幕信息 apk 代码 截图 android设备直接安装 包括图片素材存放目录 宽高像素dp 屏幕密度 屏幕dpi 屏幕长宽比 以及安卓各个密度屏幕的dpi dp_px换算 代表分辨率.rar,太多无法一一验证...
  • 开始看的地址不是这里,其他地址 ,讲的很模糊(估计是理解年龄大了,理解能力差了)。里面有些dp,px, dpi相关的东西看了很久没理解。应该 是说其中的换算搞了...其实今日头条的适配方案和dp ,px 没啥直接联系 ...
  • 屏幕尺寸:指屏幕的对角线长度,单位是英寸,1英寸等于2.54厘米,常见尺寸有2.4,2.8,3.5,3.7,4.2,5.0,5.5,6.0等。 屏幕分辨率:指在纵横向上的...屏幕像素密度指每英寸上面的像素点个数,单位是dpi,是“...
  • px不解释em是相对长度单位。相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸...下面是office中的字号磅数毫米换算(因为word中板式都是按物理长度单位设计的,便于打印,例如A4型210mm×297mm)。字号 ...
  • 文章目录一、概念1.px(像素)2.dp(设备独立像素)3.sp(放大像素)4.ppi(像素密度)5.dpi(屏幕密度)二、换算1.pxdp2.ppi3.dpi 一、概念 px : pixels(像素) dp/dip : device independent pixels(设备独立像素) sp : ...
  • [size=x-large]在进入正题之前先了解一下基本术语概念[/size] [size=large]1.屏幕大小[/size] 根据屏幕对角线实际测量的大小 [size=large]2.屏幕密度[/size] 屏幕物理区域一个单位(一般指的是英寸)上像素...
  • Android Developers关于dp的文档我看过N次,那个px和dp的转换公式我记得很清楚: px = dp * (dpi / 160),可是今天翻了源码了才发现,原来这里的dpi是归一化后的dpi,可能值只有120(low)、160(medium)、240(high)、 ...
  • 基本概念 dip Density Independent Pixels , 设备无关像素 简称dp px 像素 dpi Dots Per Inch 简单来讲就是一英寸有多少个像素点。... 常见取值为120,160,240....标准dpi的比...
  • dip : device independent pixels ,设备无关像素。 我看很多帖子写的五花八门的,关于d的,什么display啊各种都有,既然是设备无关,我还是...dp就是dip,dip可以换算为px,dip其它没有关系 px : 像素不多说 dp
  • dp :一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1px dip :等同于dp sp :同dp相似,但还会根据用户的字体大小偏好来缩放。 建议使用sp作为文本的单位,其它用dip 针对dippx 的关系,做以下...
  • 1.屏幕参数: a.屏幕大小 - 如4.7寸屏幕 指的是手机对角线的长度(1寸 = ...c.PPI - Pixels Per Inch,DPI(Dots Per Inch),计算公式:PPI=√(长²+宽²)开方 ÷屏幕尺寸。 一般400PPI已经是非常高的屏幕密度了 2.
  • dp :一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1px dip :等同于dp sp :同dp相似,但还会根据用户的字体大小偏好来缩放。 建议使用sp作为文本的单位,其它用dip 针对dippx 的关系,做以下概述: ...
  • dp :一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1px dip :等同于dp sp :同dp相似,但还会根据用户的字体大小偏好来缩放。 建议使用sp作为文本的单位,其它用dip 针对dippx 的关系,做以下...
  • dp :一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1px dip :等同于dp sp :同dp相似,但还会根据用户的字体大小偏好来缩放。 建议使用sp作为文本的单位,其它用dip 针对dippx 的关系,做以下...

空空如也

空空如也

1 2 3 4
收藏数 71
精华内容 28
关键字:

dp和dpi换算