Android px、dp、sp之间相互转换
dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。
dp也就是dip,这个和sp基本类似。如果设置表示长度、高度等属性时可以使用dp 或sp。但如果设置字体,需要使用sp。dp是与密度无关,sp除了与密度无关外,还与scale无关。如果屏幕密度为160,这时dp和sp和px是一 样的。1dp=1sp=1px,但如果使用px作单位,如果屏幕大小不变(假设还是3.2寸),而屏幕密度变成了320。那么原来TextView的宽度 设成160px,在密度为320的3.2寸屏幕里看要比在密度为160的3.2寸屏幕上看短了一半。但如果设置成160dp或160sp的话。系统会自动 将width属性值设置成320px的。也就是160 * 320 / 160。其中320 / 160可称为密度比例因子。也就是说,如果使用dp和sp,系统会根据屏幕密度的变化自动进行转换。
px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。
pt: point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用;
sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。
转换代码如下
- /**
- * 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);
- }
- }
Android px、dp、sp之间相互转换相关推荐
- android px,dp,sp大小转换工具
package com.voole.playerlib.util;import android.content.Context;/*** Android大小单位转换工具类<br/>* * ...
- android 字体像素转换工具类_android px,dp,sp大小转换工具
package com.voole.playerlib.util; import android.content.Context; /** * Android大小单位转换工具类 * * float s ...
- Android---- android计量单位--dip、px、sp之间区别与联系pixs =dips * (densityDpi/160). dips=(pixs*160)/d...
android计量单位--dip.px.sp之间区别与联系pixs =dips * (densityDpi/160). dips=(pixs*160)/d [复制链接] fanly 252 主 ...
- New UI-常用计量单位px,dp,sp,pt解析与转换
New UI-常用计量单位px,dp,sp,pt解析与转换 --转载请注明出处:coder-pig,欢迎转载,请勿用于商业用途! 小猪Android开发交流群已建立,欢迎大家加入 ...
- android 字体px转sp,Android中px,dp,sp区别及换算
px,dp,sp是Android中常用的距离单位. 基本概念: 屏幕尺寸:指的是屏幕对角线长度,用英寸(in)作为单位,1 in = 2.54 cm. 屏幕分辨率:在横纵向上的像素点数,单位px.一般 ...
- android 密度像素,Android屏幕密度适配问题之px,dp,sp等详细介绍
一 ,android屏幕相关知识 屏幕大小:指屏幕对角线的长度,使用"寸"度量,如4.7寸手机 分 辨 率:分辨率指手机屏幕的像素点个数,如720*1280 指屏幕宽有720个 ...
- dp的定义原理和dpi,ppi,px,pt,sp之间的区别
转载请标明出处:http://blog.csdn.net/xx326664162/article/details/48007855 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的 ...
- dp的定义原理和dpi ppi px pt sp之间的区别
转载请标明出处:http://blog.csdn.net/xx326664162/article/details/48007855 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一 ...
- Android 常用计量单位(px,dp,sp,pt,in)
1.px:屏幕上的点 pixel,表示像素或分辨率.不同设备显示效果相同,一般我们的 HVGA 代表 320x480 像素,这个用的比较多. 2.dp:设备独立像素 device independen ...
最新文章
- linux停止ftp服务命令,centos没有service命令,怎么启用ftp服务
- 清华校友陈怡然、杨越组队进军AI芯片市场,成立苹芯科技,最新Pre-A轮斩获近千万美元...
- 关于人脸识别滥用的十个可能的应对方案
- 【Python-ML】SKlearn库支持向量机(SVM) 使用
- 不同声音的传播速度会一样吗?
- Taro+react开发(38)注意请求接口的/
- Spark下的word2vec模型训练
- 董长青(1980-),男,北京卡达克数据技术中心软件业务本部高级工程师,主要研究方向为大数据、车联网。...
- Matlab--绘图及坐标轴命令使用示例
- 多元线性回归数据集_TensorFlow学习Program1——13.实现一元、多元线性回归(基于房价数据集)...
- mysql触发器 多数据_mysql的触发器同数据库多表的数据操作_MySQL
- Centos6.4系统局域网服务之DHCP
- 无线路由器破解教程-CDlinux(by 星空武哥)
- Java代理模式——CGLIB动态代理
- python中re的group方法详解(来自官方文档的权威解释)
- win10没有声音(扬声器一直显示未插入)
- 527. Word Abbreviation
- HTML中enter键触发事件
- 网络爬虫——票房网数据抓取及存储
- Kingbase数据库实验四 数据库系统的概要、逻辑、物理设计