Android中表示长度的单位dp,sp,px
px:像素点
dp:与像素密度有关。在每英寸160像素点的屏幕上,1dp = 1px
sp:除了受像素密度影响外,还受系统字体大小影响,主要用于字体显示
dp,sp,px的转换
//工具方法,dp转化成px
public static int dp2px(Context context, int dp) {
return (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics());
}
//工具方法,sp转化成px
public static int sp2px(Context context, int sp) {
return (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sp, context.getResources().getDisplayMetrics());
}
//工具方法,px转化成dp
public static int px2dp(Context context, int px) {
float density = context.getResources().getDisplayMetrics().density;
return (int)(px / density + 0.5f);
}
//工具方法,px转化成sp
public static int px2sp(Context context, int px) {
float density = context.getResources().getDisplayMetrics().scaledDensity;
return (int)(px / density + 0.5f);
}
Android中常用方法中的参数表示长度的单位dp,sp,px
-
Canvas方法public void drawRect(float left, float top, float right, float bottom, @NonNull Paint paint)
- left:px
- top:px
- right:px
- bottom:px Paint方法public void setStrokeWidth(float width)
- width:px