新增解析度工具類別
This commit is contained in:
parent
8a1ffa8969
commit
6bcf24ddb3
@ -0,0 +1,9 @@
|
|||||||
|
package com.ray650128.floatingwindow
|
||||||
|
|
||||||
|
import android.content.res.Resources
|
||||||
|
|
||||||
|
val Int.dp: Int
|
||||||
|
get() = (this * Resources.getSystem().displayMetrics.density).toInt()
|
||||||
|
|
||||||
|
val Int.px: Int
|
||||||
|
get() = (this / Resources.getSystem().displayMetrics.density).toInt()
|
||||||
@ -0,0 +1,77 @@
|
|||||||
|
package com.ray650128.floatingwindow.utils
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import android.os.Build
|
||||||
|
import android.util.DisplayMetrics
|
||||||
|
import android.view.WindowManager
|
||||||
|
import com.ray650128.floatingwindow.MyApp
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 畫面尺寸相關工具類別。
|
||||||
|
*/
|
||||||
|
object DensityUtil {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 取得螢幕寬度
|
||||||
|
* @return 螢幕寬度(px)
|
||||||
|
*/
|
||||||
|
fun getScreenWidth(): Int {
|
||||||
|
val windowManager = MyApp.appContext.getSystemService(Context.WINDOW_SERVICE) as WindowManager
|
||||||
|
|
||||||
|
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
||||||
|
val windowMetrics = windowManager.currentWindowMetrics
|
||||||
|
windowMetrics.bounds.width()
|
||||||
|
} else {
|
||||||
|
val metric = DisplayMetrics()
|
||||||
|
windowManager.defaultDisplay.getMetrics(metric)
|
||||||
|
metric.widthPixels
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 取得螢幕高度
|
||||||
|
* @return 螢幕高度(px)
|
||||||
|
*/
|
||||||
|
fun getScreenHeight(): Int {
|
||||||
|
val windowManager = MyApp.appContext.getSystemService(Context.WINDOW_SERVICE) as WindowManager
|
||||||
|
|
||||||
|
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
||||||
|
val windowMetrics = windowManager.currentWindowMetrics
|
||||||
|
windowMetrics.bounds.height()
|
||||||
|
} else {
|
||||||
|
val metric = DisplayMetrics()
|
||||||
|
windowManager.defaultDisplay.getMetrics(metric)
|
||||||
|
metric.heightPixels
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 取得狀態列高度
|
||||||
|
* @return 狀態列高度(px)
|
||||||
|
*/
|
||||||
|
fun getStatusBarHeight(): Int {
|
||||||
|
var result = 0
|
||||||
|
val resourceId: Int = MyApp.appContext.resources.getIdentifier(
|
||||||
|
"status_bar_height",
|
||||||
|
"dimen",
|
||||||
|
"android"
|
||||||
|
)
|
||||||
|
if (resourceId > 0) {
|
||||||
|
result = MyApp.appContext.resources.getDimensionPixelSize(resourceId)
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 取得導航列高度
|
||||||
|
* @return 導航列高度(px)
|
||||||
|
*/
|
||||||
|
fun getNavigationBarHeight(): Int {
|
||||||
|
val resources = MyApp.appContext.resources
|
||||||
|
val resourceId: Int = resources.getIdentifier("navigation_bar_height", "dimen", "android")
|
||||||
|
return if (resourceId > 0) {
|
||||||
|
resources.getDimensionPixelSize(resourceId)
|
||||||
|
} else 0
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user