开发android应用的时候,第一步需要考虑界面布局。布局就是要设置界面及控件的大小,涉及到几个像素单位(px,大dip,dp,sp,pt),需要有基本的了解。

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

dp: density independent pixels(与密度无关的像素),它与像素密度有关。像素密度的单位dpi是Dots Per Inch的缩写,即每英寸像素数量。

Android系统定义了四种像素密度:ldpi(120dpi)、mdpi(160dpi)、hdpi(240dpi)和xhdpi(320dpi),它们对应的dp到px的系数分别为0.75、1、1.5和2,这个系数乘以dp长度就是像素数。例如界面上有一个长度为“100dp”的图片,那么它在240dpi的手机上实际显示为80×1.5=120px,在320dpi的手机上实际显示为80×2=160px。如果你拿这两部手机放在一起对比,会发现这个图片的物理尺寸“差不多”,这就是使用dp作为单位的效果。

dpi:dots per inch(每英寸像素数量),dpi = √(长度像素数的 平方+ 宽度像素数的平方) / 屏幕对角线英寸数。

px  pixels(像素),  屏幕上的点,不同设备不同的显示屏显示效果相同,这是绝对像素,是多少就永远是多少不会改变。一般我们HVGA代表320×480像素,这个用的比较多。

sp: scale independent pixels, 主要处理字体的大小。以160dpi屏幕为标准,当字体大小为 100%时, 1sp=1px。

dip与px转换的方法:

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

final float scale = context.getResources().getDisplayMetrics().density; //density表示dp到px的系数,例如320dpi的屏幕时,density为1.
    return (int)(dipValue * scale + 0.5f);
}
public static int px2dip(Context context, float pxValue){
    final float scale = context.getResources().getDisplayMetrics().density; 
    return (int)(pxValue / scale + 0.5f);
}

android开发中像素单位介绍相关推荐

  1. android中像素单位dp、px、pt、sp转换

    android中像素单位有dp.px.pt.sp,每一种都代表不同的尺寸,先说一下每一种尺寸单位的含义. dp(dip): device independent pixels(设备独立像素). 不同设 ...

  2. android中资源文件的两种访问方式,在android开发中进行数据存储与访问的多种方式介绍...

    在android开发中进行数据存储与访问的多种方式介绍 更新时间:2013年06月07日 16:24:23   作者: 很多时候我们的软件需要对处理后的数据进行存储或再次访问,Android为数据存储 ...

  3. 在 Android 开发中使用 Kotlin 协程 (一) -- 初识 Kotlin 协程

    前言 最近在研究 Kotlin 协程,发现功能真的超级强大,很有用,而且很好学,如果你正在或计划使用 Kotlin 开发 Android,那么 Kotlin 协程你一定不能错过! 协程是什么? 我们平 ...

  4. android listview下拉动画效果,Android开发中利用ListView实现一个渐变式的下拉刷新动画...

    Android开发中利用ListView实现一个渐变式的下拉刷新动画 发布时间:2020-11-23 16:50:31 来源:亿速云 阅读:80 作者:Leah 本篇文章给大家分享的是有关Androi ...

  5. Android开发中dip,dpi,density,px等详解

    Android开发中的各种单位的解释 Px (Pixel像素) 也称为图像元素,是作为图像构成的基本单元,单个像素的大小并不固定,跟随屏幕大小和像素数量的关系变化(屏幕越大,像素越低,单个像素越大,反 ...

  6. android 4.4 禁止下拉,Android开发中禁止下拉式的实现技巧

    我们开发项目的时候,经常会看到禁止的情况,而Android开发中并没有直接调用的接口,下面是爱站技术频道小编就给大家介绍的Android开发中禁止下拉式的实现技巧,希望网友们喜欢! 分享给大家供大家参 ...

  7. 史上最全Android开发中100%会用到的开源框架整理(1/5)

    其实这个开源框架整理很久了,只是一直放在有道云笔记里面,笔者还有很多写得文章都放在有道云笔记里面,有时间都好好整理一下放出来,本篇文章也会不定期更新,由于整理的开源框架分类都有200多个,所有这次只将 ...

  8. Android开发中使用七牛云存储进行图片上传下载

    Android开发中的图片存储本来就是比较耗时耗地的事情,而使用第三方的七牛云,便可以很好的解决这些后顾之忧,最近我也是在学习七牛的SDK,将使用过程在这记录下来,方便以后使用. 先说一下七牛云的存储 ...

  9. C/C++在Android开发中的应用

    JNI开发系列阅读 JNI与底层调用1:http://blog.csdn.net/axi295309066/article/details/60758515 JNI与底层调用2:http://blog ...

最新文章

  1. 从构建分布式秒杀系统聊聊限流特技
  2. 【网址收藏】spark on k8s operator github地址
  3. 联发科mtk手机处理器怎么样_5G手机价格将再探新低!联发科天玑700芯片发布:入门级5G处理器...
  4. 如何查看已经archive过的product信息
  5. 嵌入式xworks系统初始化(PowerPC汇编)
  6. 东南亚支付——柬埔寨行
  7. 2010.7.29 模式对话框
  8. 黑客大佬:我是如何让50个文件一起骗过AI安防系统的?
  9. 工程师和科学家有什么区别
  10. c++函数传参:值传递、指针传递、引用传递
  11. 5.过滤器作为模板——模板匹配、Matlab模板匹配实战_2
  12. java hashmap
  13. python中的continue和break
  14. Matlab多惯量仿真,两连杆机器鱼的简单建模以及MATLAB仿真
  15. 【转】【翻】Android Design Support Library 的 代码实验——几行代码,让你的 APP 变得花俏...
  16. 如何在 Mac 上的“地图”中自定地图视图?
  17. 李宏毅机器学习HW2-winner or loser-利用逻辑回归进行收入分类
  18. 关于通用配置管理模块的思考-续(用XmlDocument 还是DataSet)
  19. 扑克牌发牌游戏python_Python随机扑克牌生成器游戏
  20. linux轻量级进程,linux轻量级进程LWP

热门文章

  1. 【PHP】Phpstorm环境配置与应用
  2. 多域间访问:创建子域及树域并搭建信任关系并实现林中跨域访问
  3. 程序员被女朋友拉黑之后,开发出绝世神器
  4. (SSM 和 SpringBoot ) Kaptcha 实现登录验证码
  5. python mkl包_免序列号安装MKL包
  6. Intel MKL库在VS中的配置与使用
  7. WEB前端(2.8起)
  8. 因买不到RTX 3090!他花19万搭了一个专业级机器学习工作站
  9. 服装行业智能生产制造执行系统(MES)——RFID技术的应用
  10. C语言求梅花数1到9999,找出1到10000的水仙花数,完全数,还有同构数