android开发中用到的px、dp、sp

先介绍一下这几个单位:

px : pixels(像素),相应屏幕上的实际像素点。

dip :device independent pixels,与密度无关的像素,基于屏幕密度的抽象单位。

在每英寸160点的显示器上。

1dp = 1px ,即1 :1关系。(dp 就是 dip)

sp : scaled pixels(放大像素).与密度和字体缩放度无关的像素。 主要用于字体显示best for textsize。

因为android设备屏幕杂乱,各种花样宽度和高度多的不行,加上各种山寨。

当开发出一套layout后。痛苦的事情来了,屏幕适配。

怎样保证layout在不同分辨率的屏幕下都能正常显示呢?以下我们来简单的分析一下android中一些经常使用的单位。

px(像素)是UI设计师在PS中切图时使用的单位,手机屏幕中也相同有该显示单位。

dp是android中开发layout时使用的尺寸单位。

sp是开发layout时关于字体的字号单位,在设置字体单位为sp时,字体可随屏幕尺寸而自己主动拉伸适应。

Android支持五种不同的dpi模式:ldpi、 mdpi、 hdpi、 xhdpi、 xxhdpi

一般地,手机分辨率与所执行的dpi模式是匹配的。也就是会依据屏幕的尺寸载入Res下不同的dpi目录。

比如 HVGA(320x480像素)的手机屏幕一般在3.5英寸左右。执行在mdpi模式下(也有奇葩机子例外)

(这个是ROM控制的。app不能改变)。

当执行在mdpi下时,1dp=1px:也就是说设计师在PS里定义一个item高48px。开发时就会定义该item高48dp;Photoshop中14px大的字体,开发时会定义为14sp。

对于一部WVGA(480x800)手机,通常是执行在hdpi模式下。

当执行在hdpi模式下时,

1dp=1.5px:也就是说设计师在PS里定义一个item高72px。开发时就会定义该item高 48dp;

Photoshop中21px大的字体。开发会定义为14sp。

所以,当你的app须要适配多个dpi模式的时候(比如同一时候适配mdpi与hdpi),若你在WVGA下做设计(或者更高),你须要将各数值都为3的倍数,

并在切图标注时将全部的数字( /3*2) 换算成dp。这样开发的同一套layout就能用在两个不同的dpi模式下,而不是写两套layout。

当中的比例:

mdpi与hdpi是2:3的关系

mdpi与 xhdpi是1:2的关系

ldpi与mdpi是3:4的关系

比方我的机子红米,720 * 1280 的屏幕尺寸,就是执行在xhdpi下的。

一种例外。有些比較山寨的Pad有可能是7英寸屏幕,分辨率为WVGA(480*800)执行在mdpi下。

时间: 2024-11-04 16:16:40

android开发中用到的px、dp、sp的相关文章

Android屏幕尺寸与度量单位(px,dp,sp)简介

html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption

Android px, dp, sp的区别

Android自兴起以来,开发者不断增加,与此同时市场上参差不齐的设备也不断增加,随之而来的则是开发者需要适配众多机型而带来的困扰与抱怨.并且随着不同厂家定制化不同的ROM,Android设备的碎片化现象日益严重.这篇文章主要讲述如何设计中严格遵从设计图标准的Android页面. 1. px, dp, sp区别 什么是px px就是我们通常所说的像素的单位,在css里面,我们用px比较多.px主要指用户在屏幕上看到的事物的实际大小单位. 什么是dp 在看手机或者电脑参数时,我们经常说到一个关键词

New UI-常用计量单位px,dp,sp,pt解析与转换

New UI-常用计量单位px,dp,sp,pt解析与转换            --转载请注明出处:coder-pig,欢迎转载,请勿用于商业用途! 小猪Android开发交流群已建立,欢迎大家加入,无论是新手,菜鸟,大神都可以,小猪一个人的 力量毕竟是有限的,写出来的东西肯定会有很多纰漏不足,欢迎大家指出,集思广益,让小猪的博文 更加的详尽,帮到更多的人,O(∩_∩)O谢谢! 小猪Android开发交流群:小猪Android开发交流群群号:421858269 新Android UI实例大全目

android 开发中用到的工具-持续更新(码农必看)

1. vim 单文件查看修改利器(一直使用支持各种编码各种文件,各种插件),欢迎下载笔者插件 git clone https://github.com/green130181/vim-conf.git development 是开发目录,要使用的话直接进入该目录执行make install 即可 doc是个继续latex 的  文档,介绍一些插件如何使用的文档 2.Geany 不错的文件查看编辑器,有点类似UltraEdit,查看log好帮手,和vim 各有特色吧 3.git 安卓开发必备,必须

px,dp,sp三者的转换

dp是虚拟像素,在不同的像素密度的设备上会自动适配, 比如: 在320x480分辨率, 像素密度为160,1dp=1px 在480x800分辨率,像素密度为240,1dp=1.5px 计算公式:1dp*像素密度/160 = 实际像素数 下面是工具类: import android.util.TypedValue; import android.content.Context; //常用单位转换的辅助类 public class DensityUtil{ public DensityUtil()

Android开发里的像素单位dp、px、pt、sp的比较

Android支持下列所有单位.px(像素):屏幕上的点.in(英寸):长度单位.mm(毫米):长度单位.pt(磅):1/72英寸.dp(与密度无关的像素):一种基于屏幕密度的抽象单位.在每英寸160点的显示器上,1dp = 1px.dip:与dp相同,多用于android/ophone示例中.sp(与刻度无关的像素):与dp类似,但是可以根据用户的字体大小首选项进行缩放. dp这个单位可以适配屏幕,根据屏幕的大小进行放大缩小 下面说下如何获取分辨率: 在一个Activity的onCreate方

android px,dp,sp大小转换工具

package com.voole.playerlib.util; import android.content.Context; /** * Android大小单位转换工具类<br/> * * float scale = context.getResources().getDisplayMetrics().density; */ public class DisplayUtil { /** * 将px值转换为dip或dp值,保证尺寸大小不变 * * @param pxValue * @par

Android开发中用友盟做分享的一些坑

仅限于用5.1.4版本的 按照友盟分享的API在自己的代码中修改: 1.微信分享需要打包APK文件,数字签名与微信开发申请的要一致 2.此name中属性不能修改 value为友盟的申请的appkey <meta-data   android:name="UMENG_MESSAGE_SECRET"    android:value="******************************" > 3.做微博分享时:libs里面添加SocialSDK_S

设计师给了px单位的标注,Android开发到底要设置多少dip、dp、sp?

本文链接    http://blog.csdn.net/xiaodongrush/article/details/29560431 1. 要开发一款Android APP,设计师和开发要约定哪些事情? 首先,选择一款主流机型. 然后,设计师根据该机型的屏幕尺寸设计效果图,给出px单位的标注. 最后,开发根据该机型,可以算出px与dp的换算方法,根据px单位的标注,设置为dp为单位的标注. 备注:1dp=1dip=1sp,对于一般长宽dp或者dip都可以,sp是字体专用单位,在操作系统中设置大中