最佳实践系列 -- Android单位转换(dp/px/sp)
最佳实践
view.height = 20.dp2px() //设置高度为20dp
view.height = 20.2f.dp2px() //设置高度为20.2dp
源码(Kotlin扩展)
fun Number.px2dp(): Float {
val f = toFloat()
val scale: Float = Resources.getSystem().displayMetrics.density
return (f / scale + 0.5f)
}
fun Number.dp2px(): Int {
val f = toFloat()
val scale: Float = Resources.getSystem().displayMetrics.density
return (f * scale + 0.5f).toInt()
}
fun Number.dp2pxFloat(): Float {
val f = toFloat()
val scale: Float = Resources.getSystem().displayMetrics.density
return f * scale
}
fun Number.sp2px(): Int {
val f = toFloat()
val scale: Float = Resources.getSystem().displayMetrics.scaledDensity
return (f * scale + 0.5f).toInt()
}
fun Number.sp2pxFloat(): Float {
val f = toFloat()
val scale: Float = Resources.getSystem().displayMetrics.scaledDensity
return f * scale
}
本文标题:最佳实践系列 -- Android单位转换(dp/px/sp)
本文链接:https://www.haomeiwen.com/subject/mptotrtx.html
网友评论