在XML布局文件中,我们既可设置PX,也可设置dp(或dip),但一般情况下,我们都会选择使用dp,这样可以保证不同屏幕分辨率的机器上布局一致,但在代码中,怎样处理呢?
比如setPadding,并没有提供设置dp的方法,这个时候,如果需要设置dp,需要将dp转换成px
详见代码:
public class UtilTest{
/** 根据手机分辨率从dp转换为px*/
public static int dpToPx(Context context , float dpVa)
{
final float scale=context.getResources( ).getDisplayMetrics( ).density;
return (int)(dpVa * scale +0.5f);
}
/**根据手机分辨率从px转换成dp*/
public static int pxTodp(Context context , float pxVa)
{
final float scale=context.getResources( ).getDisplayMetrics( ).density ;
return (int) (pxVa /scale+0.5f);
}
}