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作为其他元素的单位。


px和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,dp,px,pt的区别以及各自的用法)