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
|
|
|
}
|
|
|
|
|
}
|