您的位置:首页 > 移动开发 > Android开发

自定义View之尺寸的转化

2016-07-21 23:03 489 查看

自定义View之尺寸的转化

  在Android的布局文件中,往往使用dp作为控件的宽度和高度尺寸,但是在Java代码中,文字大小或者组件尺寸的单位却是像素px,这两个单位有明显的区别:dp和屏幕的密度有关,而px,sp与屏幕密度无关,所以使用时经常会涉及到两者之间的互相转化 :

dpi转px

public static int Dp2Px(Context context, int dpi) {
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpi, context.getResources().getDisplayMetrics());
}


px转dp

public static int Px2Dp(Context context, int px) {
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, px, 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转sp

public static int Px2Sp(Context context, int px) {
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, px, context.getResources().getDisplayMetrics());
}


附上工具类下载:
SizeUtil.java

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 控件 dp