最近在看Android群英传这本书,书中有一节涉及到了,屏幕尺寸与单位。觉得以后可能会用到,做个笔记。

PPI(pixels per inch) ,又称为DPI,它是由对角线的像素点数除以屏幕的大小得到,通常达到400PPI就已经是非常高的屏幕了。

Android系统定义了几个标准的DPI值,作为手机的固定DPI

密度 ldpi mdpi hdpi xhdpi xxhdpi
密度值 120 160 240 320 480
分辨率 240X320 320X480 480X800 720X1280 1080X1920

Android系统使用mdpi即密度值为160的屏幕作为标准,在这个屏幕上1px=1dp

在各个密度值中的换算比例:3:4:6:8:12

单位转换

px转换为dip或dp

public static int px2dp(Context context, float px) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int)(px/scale+0.5f);
}

dp或dip转换为px

public static int dp2px(Context context, float dp) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int)(dp*scale+0.5f);
}

px转换为sp

public static int px2sp(Context context, float px) {
final float scale = context.getResources().getDisplayMetrics().scaledDensity;
return (int)(px/scale+0.5f);
}

sp转换为px

public static int sp2px(Context context, float sp) {
final float scale = context.getResources().getDisplayMetrics().scaledDensity;
return (int)(sp*scale+0.5f);
}

同时也可以利用系统的TypedValue类来帮助我们转换(其中dp,px分别为待转换的值):

dp转换为px

TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, getResources().getDisplayMetrics());

sp转换为px

TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sp, getResources().getDisplayMetrics());

最新文章

  1. Qt界面编程之多窗口切换
  2. android 的数学公式图片转换
  3. Powershell查看SSAS Cube占用磁盘空间
  4. Virtual Box创建共享目录
  5. shell 标出输入、标准输出、错误输出
  6. 结构体定义 typedef struct 用法详解和用法小结
  7. CSS未知div高度垂直居中代码_层和布局特效
  8. ubuntu指令记录
  9. LVS、Nginx和HAProxy负载均衡器对比总结
  10. 【前端】HTML中最适合做按钮的元素
  11. js获取数组中最大值和最小值
  12. useragent大全
  13. spring jpa 语法
  14. Oracl数据库+PL/SQL安装与配置
  15. Tomcat 目录结构以及基本配置
  16. pip 解决下载包速度慢的问题
  17. Python cx_Oracle 安装小记
  18. 理解 vm.$nextTick
  19. CATransaction(参考其他博客敲)
  20. linux线程学习

热门文章

  1. Python爬虫进阶一之爬虫框架概述
  2. stl源码分析de练习
  3. java反射机制学习代码
  4. 479. Largest Palindrome Product
  5. C#进阶系列——WebApi 异常处理解决方案(转)
  6. arean.c
  7. UIWebView清除缓存和cookie[转]
  8. underscore collections
  9. Java8接口中的默认方法
  10. Configuring Oracle E-Business Suite Integrated SOA Gateway Release 12.1.2 and Release 12.1.3 in a Multinode Environment (Doc ID 1081100.1)