/
Irisska
/
Task9
Обзор
Документация
Войти
/
Irisska
/
Task9
Код
Запросы
1
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
progress_bar1
app/src/main/java/com/example/progressbar/screens/ImageDetailScreen.kt
79 строк
3 KB
Irisska
ProgressBar
19 мар 2025, 23:08
19 мар 2025, 23:08
c4face9
Код
Авторство
О чём код?
package com.example.progressbar.screens import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.Image import androidx.compose.foundation.layout.* import androidx.compose.material3.Surface import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import coil.compose.rememberAsyncImagePainter import androidx.core.app.ActivityOptionsCompat import androidx.core.view.ViewCompat import com.example.progressbar.utils.setSharedElementTransition import com.example.progressbar.utils.startSharedElementTransition import androidx.compose.ui.graphics.painter.Painter import android.widget.ImageView import androidx.compose.ui.res.painterResource import android.widget.Toast import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut import androidx.compose.animation.scaleIn import androidx.compose.animation.scaleOut import androidx.compose.foundation.clickable import androidx.navigation.NavController import androidx.compose.material3.Text import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.* import androidx.compose.foundation.clickable import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut import androidx.compose.animation.scaleIn import androidx.compose.animation.scaleOut import androidx.compose.ui.layout.ContentScale import androidx.compose.foundation.Image import coil.compose.rememberAsyncImagePainter import androidx.compose.foundation.layout.* // Экран с большим изображением и анимацией перехода @Composable fun ImageDetailScreen(imageUrl: String, navController: NavController?) { var expanded by remember { mutableStateOf(false) } Box( modifier = Modifier .fillMaxSize() .clickable { expanded = !expanded }, contentAlignment = Alignment.Center ) { AnimatedVisibility( visible = expanded, enter = scaleIn(initialScale = 0.5f) + fadeIn(), exit = scaleOut(targetScale = 0.5f) + fadeOut() ) { Image( painter = rememberAsyncImagePainter(imageUrl), contentDescription = null, modifier = Modifier.fillMaxSize() ) } } } @Composable fun navigateToImageDetail(navController: NavController, imageUrl: String) { navController.navigate("imageDetailScreen/$imageUrl") { launchSingleTop = true } }