Jetpack Compose, современный набор инструментов пользовательского интерфейса для создания собственных приложений Android, предлагает множество мощных функций. Одним из распространенных требований при разработке приложений является определение размера экрана. В этой статье мы рассмотрим различные методы получения размера экрана в Jetpack Compose и предоставим примеры кода для каждого подхода. Давайте погрузимся!
Метод 1: использование WindowMetrics
import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.platform.LocalWindowMetrics
val configuration = LocalConfiguration.current
val windowMetrics = LocalWindowMetrics.current
val screenWidth = windowMetrics.bounds.width()
val screenHeight = windowMetrics.bounds.height()
Метод 2: использование пикселей, не зависящих от плотности (dp)
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
val screenWidth: Dp = LocalConfiguration.current.screenWidthDp.dp
val screenHeight: Dp = LocalConfiguration.current.screenHeightDp.dp
Метод 3. Использование DisplayMetrics
import android.content.Context
import androidx.compose.runtime.Composable
import androidx.compose.ui.platform.LocalContext
import android.util.DisplayMetrics
@Composable
fun getScreenSize(): Pair<Int, Int> {
val context = LocalContext.current
val displayMetrics = DisplayMetrics()
(context.getSystemService(Context.WINDOW_SERVICE) as WindowManager)
.defaultDisplay
.getMetrics(displayMetrics)
return Pair(displayMetrics.widthPixels, displayMetrics.heightPixels)
}
// Usage:
val (screenWidth, screenHeight) = getScreenSize()
Метод 4. Использование ресурсов
import androidx.compose.runtime.Composable
import androidx.compose.ui.platform.LocalContext
@Composable
fun getScreenSize(): Pair<Int, Int> {
val context = LocalContext.current
val resources = context.resources
val displayMetrics = resources.displayMetrics
return Pair(displayMetrics.widthPixels, displayMetrics.heightPixels)
}
// Usage:
val (screenWidth, screenHeight) = getScreenSize()
В этой статье мы рассмотрели различные методы получения размера экрана в Jetpack Compose. Мы рассмотрели подходы с использованием WindowMetrics, пикселей, не зависящих от плотности (dp), DisplayMetricsи ресурсов. В зависимости от вашего конкретного случая использования вы можете выбрать метод, который лучше всего соответствует вашим потребностям. Включение определения размера экрана в ваше приложение может позволить вам создавать отзывчивые и адаптивные пользовательские интерфейсы. Приятного кодирования!