들어가며,
아동이 회원가입을 진행할 때, 급식카드를 등록해야한다.
아동이 카드를 간편하게 등록하기 위해서 카메라로 카드를 찍으면 카드넘버가 인식될 수 있게끔한다.
이때 카메라, 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를 사용하도록 적극 권장하고 있다.
바로 registerForActivityResult 을 사용하는 것이다
참고자료:
https://meal-coding.tistory.com/25
(MVVM 패턴 공부0)
'개발일지 > Android Studio' 카테고리의 다른 글
[Android Studio] TedPermission (0) | 2024.08.28 |
---|