[android] 안드로이드 카메라 앱
안드로이드 기기를 사용하여 사진을 찍고 저장하는 간단한 카메라 앱을 개발하는 방법에 대해 알아봅시다.
1. 안드로이드 카메라 앱 만들기
안드로이드 스튜디오를 열고 새로운 안드로이드 프로젝트를 생성합니다. 프로젝트 이름과 위치를 지정한 후 “Empty Activity” 템플릿을 선택합니다.
2. 카메라 앱의 UI 디자인
카메라 버튼과 사진을 나타낼 ImageView를 화면에 배치합니다.
<Button
android:id="@+id/camera_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Take Picture" />
<ImageView
android:id="@+id/picture_imageview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp" />
3. 카메라 앱의 기능 구현
카메라 앱의 기능을 구현하기 위해 Camera API나 CameraX 라이브러리를 사용할 수 있습니다. 여기서는 CameraX를 사용하여 카메라 앱을 구현하는 방법을 알아봅시다.
implementation "androidx.camera:camera-core:1.1.0"
val imageCapture = ImageCapture.Builder().build()
camera_button.setOnClickListener {
imageCapture.takePicture(ContextCompat.getMainExecutor(this), object : ImageCapture.OnImageCapturedCallback() {
override fun onCaptureSuccess(image: ImageProxy) {
val bitmap = image.image?.toBitmap()
picture_imageview.setImageBitmap(bitmap)
image.close()
}
override fun onError(exception: ImageCaptureException) {
Log.e(TAG, "Error capturing image: ${exception.message}", exception)
}
})
}
4. 카메라 권한 요청
카메라를 사용하기 위해 필요한 권한을 요청해야 합니다. Manifest 파일에 카메라 권한을 추가하고, 런타임 시 권한을 요청하는 코드를 작성합니다.
<uses-permission android:name="android.permission.CAMERA" />
private val cameraPermission = Manifest.permission.CAMERA
private val permissionsRequestCode = 101
if (ActivityCompat.checkSelfPermission(this, cameraPermission) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, arrayOf(cameraPermission), permissionsRequestCode)
}
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String>, grantResults: IntArray) {
if (requestCode == permissionsRequestCode && grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// 카메라 권한이 승인됨
} else {
// 카메라 권한이 거부됨
}
}
안드로이드 카메라 앱을 개발하는 기본적인 방법에 대해 알아보았습니다. 카메라 관련 라이브러리와 권한 요청 기능을 사용하여 사용자에게 사진 촬영 기능을 제공할 수 있습니다.