px
1px代表屏幕上一个物理的像素点;同样100px的图片,在不同手机上显示的实际大小可能不同,一般不建议使用
dip = dp
device independent pixels(设备独立像素)与“像素密度有关”,标准是160dip.即1dp对应1个pixel,,屏幕密度越大,1dp对应 的像素点越多,屏幕图像越细腻。
sp:
scaled pixels(放大像素). 主要用于字体显示best for textsize。
px与dp和sp之间的转换方法,常用语Android 自定义控件中画图。
这里写代码片
//px转换为dp
public int dp2px(int dpVal){
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
dpVal, getResources().getDisplayMetrics());
//TypedValue.COMPLEX_UNIT_DIP表示想要得到的单位,dpVal是想要得到单位的数值
//getResources()这个方法就可以获取存在系统的资源
//getDisplayMetrics()
}
//px转换为sp
public int sp2px(int spVal){
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP,
spVal, getResources().getDisplayMetrics());
}