sp,dp,px,pt的区别以及各自的用法
展开全部
dp:就是dip(device independent pixels)设备独立像素,与密度无关的像素。一种基于屏幕密度的抽象单位。在每英寸160点(屏幕密度为160)的显示器上,1dp=1px;
sp:与刻度无关的像素。主要用于定义字体的大小,而从来不再layout上使用。与dp相似,但是可以根据用户的字体大小首选项进行缩放,即sp除了与密度无关外,还与scale(缩放)无关。当屏幕密度为160时,1dp=1sp=1px;
px:屏幕的实际像素。一般不用它作为单位,因为它会在不同的设备显示相同的效果。
in:英寸。
mm:毫米。
pt:磅。1/72英寸。
dp和sp能够自动的随屏幕的变化而变化。因此,为了使用户界面能够在现在和将来的显示器类型上正常的显示,建议始终使用sp作为文字大小的单位,将dp作为其他元素的单位。
package com.hujl.util;
import android.content.Context;
public class DensityUtil {
/**
* 根据手机的分辨率从 dp 的单位 转成为 px(像素)
*/
public static int dip2px(Context context, float dpValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}
/**
* 根据手机的分辨率从 px(像素) 的单位 转成为 dp
*/
public static int px2dip(Context context, float pxValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}
}
sp:与刻度无关的像素。主要用于定义字体的大小,而从来不再layout上使用。与dp相似,但是可以根据用户的字体大小首选项进行缩放,即sp除了与密度无关外,还与scale(缩放)无关。当屏幕密度为160时,1dp=1sp=1px;
px:屏幕的实际像素。一般不用它作为单位,因为它会在不同的设备显示相同的效果。
in:英寸。
mm:毫米。
pt:磅。1/72英寸。
dp和sp能够自动的随屏幕的变化而变化。因此,为了使用户界面能够在现在和将来的显示器类型上正常的显示,建议始终使用sp作为文字大小的单位,将dp作为其他元素的单位。
package com.hujl.util;
import android.content.Context;
public class DensityUtil {
/**
* 根据手机的分辨率从 dp 的单位 转成为 px(像素)
*/
public static int dip2px(Context context, float dpValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}
/**
* 根据手机的分辨率从 px(像素) 的单位 转成为 dp
*/
public static int px2dip(Context context, float pxValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
STM32是一款广泛应用于消费类电子、汽车、工业和物联网领域的低功耗嵌入式系统芯片。ST公司推出了多个STM32系列,以满足不同应用需求。以下是ST公司主要的STM32系列:1. STM32WB系列:这是ST公司推出的第一款支持2.4GHz...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询