본문 바로가기
개발일지/Android Studio

[Android Studio] 카메라 기능 구현 (내용 추가 중)

by 최호희 2024. 10. 4.

 

들어가며,

아동이 회원가입을 진행할 때, 급식카드를 등록해야한다.

아동이 카드를 간편하게 등록하기 위해서 카메라로 카드를 찍으면 카드넘버가 인식될 수 있게끔한다.

이때 카메라, OCR 기능이 필요한데 이번에는 카메라 기능을 구현해보겠다.


LayOut 

먼저 레이아웃을 구성해보자!

아래와 같이 코드를 작성해준다.

이 코드는 카메라 촬영 후에 결과물 이미지를 나타내게 되는 레이아웃이다.

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_constraintHorizontal_weight="1">

        <ImageView
            android:id="@+id/image_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </LinearLayout>

 

그리고 바로 아래에는

촬영을 진행할 수 있는 버튼을 만들어 준다.

결과적으로 '촬영' 버튼을 누르면 이미지를 촬영하고, 

이미지 결과물은 위의 코드에 해당하는 레이아웃에 나타나게 된다.

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="horizontal"
        app:layout_constraintBottom_toBottomOf="parent">

        <Button
            android:id="@+id/capture"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="촬영" />
    </LinearLayout>

 

현재까지의 작업물이다

이렇게 나타난다면 성공!!

 


 

 

 

'홍드로이드' 카메라구현 강의를 따라하던 중

startActivityForResult () 함수가 Android SDK 29부터 deprecated 되어있어 사용하지 못하는 문제를 맞이했다.

 

deprecated된 이유
  • onActivityResult 코드가 너무 길어진다.
  • 문제는 프로젝트 크기가 커질 때 발생하는데, 액티비티의 수도 늘어나고 그에 따라 onActivityResult 메서드 안에 들어가는 코드의 양도 굉장히 방대해진다.

 

이 함수를 대체할 방법을 위해 많이 찾아보았는데,

 

안드로이드 공식문서에 따르면

AndroidX Activity와 Fragment에 도입된 Activity Result API를 사용하도록 적극 권장하고 있다.

https://developer.android.com/reference/androidx/activity/result/ActivityResultCaller#registerForActivityResult(androidx.activity.result.contract.ActivityResultContract%3CI,O%3E,androidx.activity.result.ActivityResultCallback%3CO%3E)

 

ActivityResultCaller  |  Android Developers

androidx.appsearch.builtintypes.properties

developer.android.com

바로 registerForActivityResult 을 사용하는 것이다

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


참고자료:

https://meal-coding.tistory.com/25

 

[Android] 홍드로이드 기초 강의 - Camera 촬영 및 Image 가져오기_환경설정

카카오톡에서 사진을 보낼 때 2가지 방법이 있습니다. 하나는 앨범에서 이미지를 가져오는 것이고, 다른 하나는 이미지를 촬영해서 보내는 방법입니다. 여기서 이미지를 촬영해서 보내는 방법

meal-coding.tistory.com

 

(MVVM 패턴 공부0)

 

'개발일지 > Android Studio' 카테고리의 다른 글

[Android Studio] TedPermission  (0) 2024.08.28