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);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
华瑞RAE一级代理商
2024-04-11 广告
2024-04-11 广告
impulse-4-xfxx是我们广州江腾智能科技有限公司研发的一款先进产品,它结合了最新的技术创新和市场需求。此产品以其卓越的性能和高效的解决方案,在行业内树立了新的标杆。impulse-4-xfxx不仅提升了工作效率,还为用户带来了更优...
点击进入详情页
本回答由华瑞RAE一级代理商提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询