Files
labs-mobile-applications/app/src/main/java/com/example/myapplication/MainActivity.kt
T

58 lines
1.9 KiB
Kotlin
Raw Normal View History

2025-09-24 12:26:38 +04:00
package com.example.myapplication
2025-09-24 14:29:16 +04:00
import android.Manifest
import android.content.pm.PackageManager
import android.graphics.Bitmap
2025-09-24 12:26:38 +04:00
import android.os.Bundle
2025-09-24 14:18:44 +04:00
import android.widget.Button
2025-09-24 14:29:16 +04:00
import android.widget.ImageView
2025-09-24 13:41:40 +04:00
import android.widget.Toast
2025-09-24 13:25:08 +04:00
import androidx.activity.ComponentActivity
2025-09-24 14:29:16 +04:00
import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.content.ContextCompat
2025-09-24 12:26:38 +04:00
2025-09-24 13:25:08 +04:00
class MainActivity : ComponentActivity() {
2025-09-24 13:41:40 +04:00
2025-09-24 14:29:16 +04:00
private lateinit var btnCamera: Button
private lateinit var imageView: ImageView
2025-09-24 14:18:44 +04:00
2025-09-24 14:29:16 +04:00
// Новый контракт
private val takePicturePreview = registerForActivityResult(
ActivityResultContracts.TakePicturePreview()
) { bitmap: Bitmap? ->
if (bitmap != null) {
imageView.setImageBitmap(bitmap)
} else {
Toast.makeText(this, "Фото не получено", Toast.LENGTH_SHORT).show()
}
2025-09-24 14:01:30 +04:00
}
2025-09-24 14:29:16 +04:00
// Запрос разрешения на камеру
private val requestCameraPermission = registerForActivityResult(
ActivityResultContracts.RequestPermission()
) { granted ->
if (granted) {
takePicturePreview.launch(null)
} else {
Toast.makeText(this, "Разрешение на камеру не выдано", Toast.LENGTH_SHORT).show()
2025-09-24 14:18:44 +04:00
}
}
2025-09-24 14:01:30 +04:00
2025-09-24 14:29:16 +04:00
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
btnCamera = findViewById(R.id.btnCamera)
imageView = findViewById(R.id.imageView)
btnCamera.setOnClickListener {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA)
== PackageManager.PERMISSION_GRANTED
) {
takePicturePreview.launch(null)
} else {
requestCameraPermission.launch(Manifest.permission.CAMERA)
}
2025-09-24 14:18:44 +04:00
}
2025-09-24 12:26:38 +04:00
}
}