今天在设置布局时发现,我的xml布局里高度写死了,然后在子布局中用代码设置其高度,发现代码设置的高度要矮好多,网上搜索才知道:
代码写的是像素
而XML中(即dp)写的是单位密度。
两者是需要转换才能达到我们想要的效果的。转换的代码:
package com.jqyd.njztc_normal.util;
import android.content.Context;
public class ConvertDpAndPx {
/**
* dp转换成px,代码写的是像素,而XML中写的是单位密度
* @param context
* @param dp
* @return
*/
public static int Dp2Px(Context context, float dp) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dp * scale + 0.5f);
}
/**
* px转换成dp,代码写的是像素,而XML中(dp)写的是单位密度
* @param context
* @param px
* @return
*/
public static int Px2Dp(Context context, float px) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (px / scale + 0.5f);
}
}