在xml布局文件中,我们既可以设置px,也可以设置dp(或者dip)。一般情况下,我们都会选择使用dp,这样可以保证不同屏幕分辨率的机器上布局一致。但是在代码中,如何处理呢?很多控件的方法中都只提供了设置px的方法,例如setPadding,并没有提供设置dp的方法。这个时候,如果需要设置dp的话,就要将dp转换成px了。
public class DensityUtils {
private static final String TAG = DensityUtils.class.getSimpleName();
/**
* 根据手机的分辨率从 dp 的单位 转成为 px(像素)
*/
public static int dip2px(Context context, float dipValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dipValue * 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);
}
/**
* 获取屏幕尺寸
*
* @param context
* @return
*/
public static DisplayMetrics getScreenSize(Activity context) {
DisplayMetrics dm = new DisplayMetrics();
context.getWindowManager().getDefaultDisplay().getMetrics(dm);
return dm;
}
}
本文介绍了一种在Android开发中将DP单位转换为PX单位的方法,这对于实现跨屏幕分辨率一致性的布局至关重要。文章提供了一个实用的DensityUtils工具类,其中包括dip2px和px2dip两个核心方法。
3238

被折叠的 条评论
为什么被折叠?



