本文最后更新于:1 个月前
在开发过程中,一般使用 xml 进行界面布局的绘制,在设置界面布局宽高方面,Android 提供了多种计量单位(px、dp/dip、sp、dpi等)。
单位详解
px
像素(Pixels),构成图像的最小单位。dp/dip
Density Independent Pixels,密度无关像素。sp
Scale-Independent Pixels,可以根据文字大小首选项进行缩放,常用于设置字体大小。dpi
Dots Per Inch,屏幕像素密度,即每英寸上的像素点数。
dp、px 转换
Java 版
public static int dip2px(Context context, float dipValue){
final float scale = context.getResources().getDisplayMetrics().density;
return (int)(dipValue * scale + 0.5f);
}
public static int px2dip(Context context, float pxValue){
final float scale = context.getResource().getDisplayMetrics().density;
return (int)(pxValue / scale + 0.5f);
}
Kotlin 版
fun dp2px(dp: Float): Int {
val scale = GifFun.getContext().resources.displayMetrics.density
return (dp * scale + 0.5f).toInt()
}
/**
* 根据手机的分辨率将px转成dp
*/
fun px2dp(px: Float): Int {
val scale = GifFun.getContext().resources.displayMetrics.density
return (px / scale + 0.5f).toInt()
}
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!