dp==dip:设备独立像素 。(device independent pixels)

dip是年迈的dp,已经退休,在比较老的代码中还可以看到dip。目前谷歌推荐用dp,在我们开发安卓程序的时候,除了字体之外,都推(强)荐(制)使用dp。

sp:比例像素。(scaled pixels )

sp一般用于处理字体、安卓有个东西叫做大字体,那玩意就是专门调整sp的。所以所有关于字体的单位,推(强)荐(制)使用sp。

px:像素(pixels)

px即手机上面的物理点,属于物理范畴的,所以在写安卓程序的时候不建议使用。

安卓手机凭密度分为  :低密度(120dpi)、中密度(160dpi)、高密度(240dpi)、超高密度(320dpi)、超超高密度(480dpi)

按照谷歌的编码规范对应:ldpi                  、mdpi                 、hdpi                、xhdpi        、xxhdpi

此处不考虑屏幕的尺寸,因为同一密度的手机,尺寸可能相差较多,这时你会要求图依据手机尺寸进行不同程度的缩放和拉伸以适应屏幕的大小。这也正是我们推(强)荐(制)使用dp的原因,dp会根据手机的密度对尺寸进行适配,这保证了同一密度的手机,只需要一组图即可。

计算手机的密度: 密度 = √(长²+宽²)/对角线长度     其中对角线长度用英寸  算下来的如果等于164 就约等于160

在160dpi下,即mdpi中,1dp == 1px ==1sp;(一般dp不与sp进行比较,仅在160dpi下其相等)

在320dpi下,即xhpdi中,1dp == 2px

在480dpi下,即xxhpdi中,1dp == 3px

我们可以知道  1dp = (当前dpi/160dpi)px。

现实中,一般作为开发人员,可以找UX或者UI要图的时候就需要计算一下几乘几,否则很容易造成误解。

然而代码中,可以使用如下代码进行dp px的转换,同时也提供px和sp的转换(注意不是sp和dp,因为无意义)。

[java] view plaincopy

import android.content.Context;

/**

* dp、sp 转换为 px 的工具类

*

* @author fxsky 2012.11.12

*

*/

public class DisplayUtil {

/**

* 将px值转换为dip或dp值,保证尺寸大小不变

*

* @param pxValue

* @param scale

* (DisplayMetrics类中属性density)

* @return

*/

public static int px2dip(Context context, float pxValue) {

final float scale = context.getResources().getDisplayMetrics().density;

return (int) (pxValue / scale + 0.5f);

}

/**

* 将dip或dp值转换为px值,保证尺寸大小不变

*

* @param dipValue

* @param scale

* (DisplayMetrics类中属性density)

* @return

*/

public static int dip2px(Context context, float dipValue) {

final float scale = context.getResources().getDisplayMetrics().density;

return (int) (dipValue * scale + 0.5f);

}

/**

* 将px值转换为sp值,保证文字大小不变

*

* @param pxValue

* @param fontScale

* (DisplayMetrics类中属性scaledDensity)

* @return

*/

public static int px2sp(Context context, float pxValue) {

final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;

return (int) (pxValue / fontScale + 0.5f);

}

/**

* 将sp值转换为px值,保证文字大小不变

*

* @param spValue

* @param fontScale

* (DisplayMetrics类中属性scaledDensity)

* @return

*/

public static int sp2px(Context context, float spValue) {

final float fontScale = context.getResources().getDisplayMetrics().scaledDensity;

return (int) (spValue * fontScale + 0.5f);

}

}

摩客怎么设置安卓的dp_安卓的显示单位dp、dip、px、sp相关推荐

  1. 摩客怎么设置安卓的dp_安卓屏幕完美适配方案——独家秘笈

    一.为什么要适配 由于Android系统的开放性,任何用户.开发者.硬件厂商.运营商都可以对Android系统和硬件进行定制,修改成他们想要的样子. 但是这种"碎片化"到达什么程度 ...

  2. 摩客怎么设置安卓的dp_摩客【操作攻略】

    很多小伙伴都遇到过摩客的困惑吧,一些朋友看过网上零散的摩客的处理方法,并没有完完全全明白摩客是如何解决的,今天小编准备了简单的解决办法,只需要按照 1:如图所示,我们所做的是一个登陆的简单的线框图,现 ...

  3. 摩客怎么设置安卓的dp_Android屏幕适配——使用 dp 实现完美适配

    我们一直知道 Android 可以使用 dp.sp 完成简单的适配,那你真的理解了么?先来看几个问题: dp 是如何进行适配的? dp 和 px 是如何换算的? sp 和 dp 的区别? dp 适配为 ...

  4. 摩客怎么设置安卓的dp_Android中dp和px之间进行转换

    在xml布局文件中,我们既可以设置px,也可以设置dp(或者dip).一般情况下,我们都会选择使用dp,这样可以保证不同屏幕分辨率的机器上布局一致.但是在代码中,如何处理呢?很多控件的方法中都只提供了 ...

  5. 摩客怎么设置安卓的dp_摩客-官方版-摩客(Mockplus)V2.1.9.2-独木成林

    Mockplus--简洁高效的原型图设计,适合快速迭代的开发模式,无需学习.快速上手.功能强劲.支持安卓App.iOS App.Windows / MAC OS桌面程序和Web原型设计.其Web版和桌 ...

  6. 摩客怎么设置安卓的dp_简单谈谈Android中SP与DP的区别

    从一开始写Android程序,就被告知这些常识 一.dp(或者dip device independent pixels) 一种基于屏幕密度的抽象单位.在每英寸160点的显示器上,1dp=1px.不同 ...

  7. 摩客怎么设置安卓的dp_Z轴拆分法:故事还得从安卓应用图标讲起

    原标题:Z轴拆分法:故事还得从安卓应用图标讲起

  8. 摩客怎么设置安卓的dp_Android屏幕适配之单位DP

    基本概念 名词概念 名称 解释 px 像素点,一个像素点为1px dp 即dip,像素密度 sp 同dp,但是可以根据系统字体偏好缩放 dpi 每英寸的像素数,也叫做屏幕密度 换算关系 根据换算关系: ...

  9. 摩客怎么设置安卓的dp_Android下设置文字大小用sp还是dp

    相信很多人看到标题会大吃一惊,长度宽度的数值要用dp,字体的大小用sp,这个理论恐怕在大家心目中早已根深蒂固,官方文档 上也是这样写的 结论: 1.当修改系统字体大小时,字体大小以dp为单位时,大小不 ...

最新文章

  1. html表格中加入斜线,在HTML中显示带斜线的表格
  2. ThreadPool基础之RegisterWaitForSingleObject
  3. vs2012中使用localdb实例还原一个sql server 2008r2版本的数据库
  4. iOS 9应用开发教程之ios9的视图
  5. java51游戏_简单实现美空军也得玩的游戏-谁能坚持超过50秒?(Java)
  6. Sicily 1155. Can I Post the lette
  7. 这些高校竟因名字太“坑爹”被误会为三本?盘点九所实力强劲但被名字耽误的大学...
  8. 《重构-改善既有代码的设计》-第1例:租赁影片(2)
  9. iis php的mime映射_iis MIME 映射添加.php文件映射类型肿么定义
  10. 慎用PHP $_REQUEST数组
  11. Spring MVC学习总结(8)——Swagger入门详解
  12. SpringBoot高级篇JdbcTemplate之数据查询上篇
  13. Mac使用OpenCV项目步骤
  14. 宝塔mysql主从复制_MySQL主从复制
  15. 云南省湖泊河流ArcGIS地形图shp图层文件下载
  16. 计算机c 逻辑符号,c语言基本符号
  17. 微信公众号编辑模式下推送消息
  18. 组合数的各种性质和定理
  19. Django入门:第十一章、基础模板
  20. 国内有哪些顶级技术团队的博客值得推荐?

热门文章

  1. 大型企业是怎么牢牢的留住高级人才的?
  2. 数据库中常见的几种表连接方式
  3. 海思ubootsd卡协议
  4. mysql error 1118_mysql 5.7 建表时报错:ERROR 1118 (42000)
  5. performance-test-of-zhifubao
  6. Spark统计一座城市的男女人数,以及男女消费额的最高与最低
  7. 经典回溯算法(八皇后问题)详解
  8. 电路基础知识讲解(太全面了)
  9. 【软考高项笔记】第3章 信息系统治理(针对甲方)3.2 IT审计
  10. c语言拷贝特定个数的字符串,C语言strncpy函数