1、px就是屏幕上的小点点,像素嘛~
2、dp是安卓搞出来的自适应单位,160dpi屏上1dp=1px,但高/低分辨率屏会自动缩放,保尺寸不变形~
3、转来转去就俩方法,直接抄代码:
java
public class DensityUtil {
// dp→px(比如写布局用了100dp,想算它在当前手机占多少像素)
public static int dip2px(Context c, float dp) {
float scale = c.getResources().getDisplayMetrics().density;
return (int) (dp * scale + 0.5f);
}
// px→dp(切图给了300px的图标,想转成dp塞进xml)
public static int px2dip(Context c, float px) {
float scale = c.getResources().getDisplayMetrics().density;
return (int) (px / scale + 0.5f);
}
}
用的时候记得传Context哈~别漏了!
2、dp是安卓搞出来的自适应单位,160dpi屏上1dp=1px,但高/低分辨率屏会自动缩放,保尺寸不变形~
3、转来转去就俩方法,直接抄代码:
java
public class DensityUtil {
// dp→px(比如写布局用了100dp,想算它在当前手机占多少像素)
public static int dip2px(Context c, float dp) {
float scale = c.getResources().getDisplayMetrics().density;
return (int) (dp * scale + 0.5f);
}
// px→dp(切图给了300px的图标,想转成dp塞进xml)
public static int px2dip(Context c, float px) {
float scale = c.getResources().getDisplayMetrics().density;
return (int) (px / scale + 0.5f);
}
}
用的时候记得传Context哈~别漏了!
