在xml布局文件中,我们既可以设置px,也可以设置dp(或者dip)。一般景象下,我们都邑选择应用dp,如许可以包管不合屏幕辨别率的机械上布局一致。然则在代码中,如何处理惩罚呢?很多控件的办法中都只供给了设置px的办法,例如setPadding,并没有供给设置dp的办法。这个时辰,若是须要设置dp的话,就要将dp转换成px了。
以下是一个应用类,便利进行px和dp之间的转换。
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);
}
}