Android屏幕尺寸单位转换
2024-10-20 09:25:14
最近在看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());
最新文章
- Qt界面编程之多窗口切换
- android 的数学公式图片转换
- Powershell查看SSAS Cube占用磁盘空间
- Virtual Box创建共享目录
- shell 标出输入、标准输出、错误输出
- 结构体定义 typedef struct 用法详解和用法小结
- CSS未知div高度垂直居中代码_层和布局特效
- ubuntu指令记录
- LVS、Nginx和HAProxy负载均衡器对比总结
- 【前端】HTML中最适合做按钮的元素
- js获取数组中最大值和最小值
- useragent大全
- spring jpa 语法
- Oracl数据库+PL/SQL安装与配置
- Tomcat 目录结构以及基本配置
- pip 解决下载包速度慢的问题
- Python cx_Oracle 安装小记
- 理解 vm.$nextTick
- CATransaction(参考其他博客敲)
- linux线程学习
热门文章
- Python爬虫进阶一之爬虫框架概述
- stl源码分析de练习
- java反射机制学习代码
- 479. Largest Palindrome Product
- C#进阶系列——WebApi 异常处理解决方案(转)
- arean.c
- UIWebView清除缓存和cookie[转]
- underscore collections
- Java8接口中的默认方法
- 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)