/
ursa
/
AndroidMultimedia
Обзор
Документация
Войти
/
ursa
/
AndroidMultimedia
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
app/src/main/java/com/devshish/multimedia/camera/CapturePhoto.kt
62 строки
2 KB
ursa
add project
03 мар 2025, 11:45
03 мар 2025, 11:45
ffdd6d7
Код
Авторство
О чём код?
package com.devshish.multimedia.camera import android.content.Intent import android.graphics.Bitmap import android.provider.MediaStore import androidx.activity.compose.rememberLauncherForActivityResult import androidx.activity.result.contract.ActivityResultContracts import androidx.compose.foundation.Image import androidx.compose.foundation.layout.* import androidx.compose.material3.Button import androidx.compose.material3.Text import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.asImageBitmap import androidx.compose.ui.unit.dp @Composable fun CapturePhotoCompose() { // Состояние для хранения Bitmap сфотографированного изображения var imageBitmap by remember { mutableStateOf<Bitmap?>(null) } // Launcher для запуска Intent val launcher = rememberLauncherForActivityResult( contract = ActivityResultContracts.StartActivityForResult() ) { result -> if (result.resultCode == android.app.Activity.RESULT_OK) { // Получаем Bitmap из результата val bitmap = result.data?.extras?.get("data") as Bitmap imageBitmap = bitmap } } Column( modifier = Modifier .fillMaxSize() .padding(16.dp), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center ) { // Кнопка для съемки фото Button(onClick = { val takePictureIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE) launcher.launch(takePictureIntent) }) { Text("Снять фото") } Spacer(modifier = Modifier.height(16.dp)) // Отображение сфотографированного изображения if (imageBitmap != null) { Image( bitmap = imageBitmap!!.asImageBitmap(), contentDescription = "Сфотографированное изображение", modifier = Modifier .fillMaxWidth() .height(200.dp) ) } } }