Android中dp与px互相转化的工具类

前言

该工具类适配于kotlin开发,采用的扩展函数方式,使用更加简便,同时添加了不同类型的支持,后期显示相关内容的所需的工具类遇到了才会在这里逐个添加。

kotlin 复制代码
object DisplayUtils {
    private val density: Float
        get() = Resources.getSystem().displayMetrics.density

    private val scaledDensity: Float
        get() = Resources.getSystem().displayMetrics.scaledDensity

    
    // ========== px -> dp ==========
    fun Int.dp(): Int = (this / density).toInt()
    fun Float.dp(): Float = this / density

    // ========== dp -> px ==========
    fun Int.px(): Int = (this * density).toInt() //dp转
    fun Float.px(): Float = this * density

    // ========== px -> sp(文字)==========
    fun Int.sp(): Int = (this / scaledDensity).toInt()
    fun Float.sp(): Float = this / scaledDensity
}
相关推荐
黄林晴2 小时前
Android Room 3.0 来了,这次改得有点狠
android·android jetpack
zh_xuan2 小时前
Android databinding
android·databinding
草莓熊Lotso2 小时前
Linux 进程间通信之命名管道(FIFO):跨进程通信的实用方案
android·java·linux·运维·服务器·数据库·c++
草莓熊Lotso2 小时前
MySQL 表约束核心指南:从基础约束到外键关联(含实战案例)
android·运维·服务器·数据库·c++·人工智能·mysql
鹏多多2 小时前
Flutter使用pretty_qr_code生成高颜值二维码
android·前端·flutter
XiaoLeisj2 小时前
Android 文件与数据存储实战:SharedPreferences、SQLite 与 Room 的渐进式实现
android·java·数据库·ui·sqlite·room·sp
耶叶2 小时前
Android开发:基于SharedPreferences实现的状态缓存
android·kotlin
萝卜大战僵尸2 小时前
Android Studio
android·ide·android studio
三少爷的鞋3 小时前
为什么我不建议UI 直接访问 Repository
android