11package top.yukonga.miuix.uitest
22
33import App
4+ import android.content.res.Resources
45import android.graphics.Color
56import android.os.Build
67import android.os.Bundle
8+ import android.util.DisplayMetrics
79import androidx.activity.ComponentActivity
810import androidx.activity.SystemBarStyle
911import androidx.activity.compose.setContent
@@ -12,12 +14,29 @@ import androidx.compose.foundation.isSystemInDarkTheme
1214import androidx.compose.runtime.DisposableEffect
1315import androidx.compose.runtime.mutableIntStateOf
1416import androidx.compose.runtime.remember
17+ import kotlin.math.pow
18+ import kotlin.math.sqrt
1519
1620class MainActivity : ComponentActivity () {
1721
1822 override fun onCreate (savedInstanceState : Bundle ? ) {
1923 super .onCreate(savedInstanceState)
2024
25+ val displayMetrics = Resources .getSystem().displayMetrics
26+ val widthPixels = displayMetrics.widthPixels
27+ val heightPixels = displayMetrics.heightPixels
28+ val widthInches = widthPixels / displayMetrics.xdpi
29+ val heightInches = heightPixels / displayMetrics.ydpi
30+ val diagonalPixel = sqrt(widthPixels.toDouble().pow(2.0 ) + heightPixels.toDouble().pow(2.0 ))
31+ val screenInches = sqrt(widthInches.toDouble().pow(2.0 ) + heightInches.toDouble().pow(2.0 ))
32+ val actualDensityDpi = diagonalPixel / screenInches
33+ val actualDensity = actualDensityDpi / DisplayMetrics .DENSITY_DEFAULT
34+
35+ val metrics = resources.displayMetrics
36+ metrics.density = actualDensity.toFloat()
37+ metrics.densityDpi = actualDensityDpi.toInt()
38+ resources.displayMetrics.setTo(metrics)
39+
2140 setContent {
2241 val colorMode = remember { mutableIntStateOf(0 ) }
2342 val darkMode = colorMode.intValue == 2 || (isSystemInDarkTheme() && colorMode.intValue == 0 )
0 commit comments