package com.example.base.utils

import android.content.Context
import android.content.res.Resources

/**
 * @Des 屏幕相关工具类
 */
object DensityUtils {

    /**
     * 根据手机的分辨率从 dp 的单位 转成为 px(像素)
     */
    fun dp2px(dpValue: Float): Int {
        val scale = Resources.getSystem().displayMetrics.density
        return (dpValue * scale + 0.5F).toInt()
    }

    /**
     * 根据手机的分辨率从 px(像素) 的单位 转成为 dp
     */
    fun px2dp(pxValue: Float): Int {
        val scale = Resources.getSystem().displayMetrics.density
        return (pxValue / scale + 0.5F).toInt()
    }

    /**
     * 将sp值转换为px值
     */
    fun sp2px(spValue: Float): Int {
        val fontScale = Resources.getSystem().displayMetrics.scaledDensity
        return (spValue * fontScale + 0.5F).toInt()
    }

    /**
     * 将px值转换为sp值
     */
    fun px2sp(pxValue: Float): Int {
        val fontScale = Resources.getSystem().displayMetrics.scaledDensity
        return (pxValue / fontScale + 0.5F).toInt()
    }

    /**
     * 获取状态栏高度
     */
    /**
     * 获取通知栏（状态栏）的高度
     *
     * @return statusBarHeight
     */
    fun getStatusBarHeight(context: Context): Int {
        var statusHeight = 0
        val resourceId = context.resources.getIdentifier("status_bar_height", "dimen", "android")
        if (resourceId > 0) {
            statusHeight = context.resources.getDimensionPixelSize(resourceId)
        }
        return statusHeight
    }
}