안드로이드 스튜디오

2.6 SimpleCamera의 MainActivity 코딩에 의해 카메라 기능 ON 시키기

coding art 2020. 2. 13. 16:01
728x90

앞 절의 2.5 안드로이드 스튜디오 Camera 코딩과 비교하여 더욱 간단한 SimpleCamera를 코딩을 연습해 보자. activity_main.xml의 버튼 구조는 Camera코드의 내용을 복사 붙여넣기 하여 그대로 유지하면서 MainActivity 코딩을 잘 이해할 수 있는 계기를 삼도록 하자. Cameraactivity_main.xml 의 구조는 ImageView를 배치하고 그 밑 아래쪽에 Take a Photo 라는 텍스트가 적힌 버튼이 배치되어 있다. 그 속성을 클릭하여 id를 확인해 두도록 하자.




다음은 Default 상태의 MainActivity.java에서 ImageView classimporting 하여 사용하도록 한다. 아래 그림에서처럼 제대로 처리되면 빨간색 문자열이 정상적으로 바뀌며 이를 capturedimage로 두기로 하자.



Class 명령에 해당하는 ImageView의 변수 image1을 선언하자. image1 변수 값은 (ImageView).FindViewById(∙∙∙)를 사용하여 얻어지며 그 주소는 이미 activity_main.xml에서 사용자가 버튼과 위젯을 사용하여 정의해 두었듯이 R.id.capturedImage 인데 속성 창에서도 확인할 수 있다.



실제 코딩 과정에서는 1분 이내의 과정이지만 이 부분이 바로 앱인벤터에서는 퍼즐 맞추기 과정으로 보면 된다. 여기서는 주소를 찾아서 맞춘 셈이다. 많은 유튜브 강의들이 어려운 안드로이드 스튜디오 코딩을 해설하고 있으나 바로 이 부분이 초보자에게는 가장 중요한 부분일 것이다. 다음과 같이 코드를 추가로 입력 하자.



이로서 라이브러리 import 가 완료되었다. 다음은 Camera 사진 촬영에 필요한 MainActivity의 라이브러리 리스트이다. 그 중에 Intent 부분만 없기에 매뉴얼로 입력 하였다. layout 작업 시에 처리했던 위젯들은 자동적으로 등록이 됨을 알 수 있다.


참고로 Intent 는 스마트 폰에서 단계를 넘어가는 과정에서 처리해야 할 요소이다. 이 상태에서 RUN ‘app’을 실행하면 연결된 스마트폰에서 빌드에러가 생성되지는 않지만 버튼을 눌러도 카메라 화면이 뜨지 않는다. 즉 버튼과 MainActivity.java 와의 연결고리를 코딩해야 한다. 다시 잠깐 activity_main.xml 로 돌아가서 버튼의 속성 창을 열어 onClick 항을 찾아 showCameraBtn을 선택하고 다시 RUN ‘app’을 실행하여 빌드 하도록 하자. 스미트폰에서 버튼을 누르면 카메라 화면을 볼 수 있을 것이다.



첨부된 코드를 실행시켜 본 후 본 블로그의 MainActivity.java의 내용을 일일이 입력하여 연습해볼 것을 권장한다. 안드로이드 스튜디오 코딩을 위해서 배워야 할 양이 많겠지만 이로서 안드로이드 스튜디오 코딩의 특성을 이해하는데 많은 도움이 될 것이다. 참고로 아두이노나 라즈베리 파이 보드에서 카메라를 다루기 위해서는 오픈 소스를 복사 붙여넣기 하면 그만일 정도로 쉽다. 하지만 앱 인벤터에서는 시각적인 차원에서 퍼즐 맞추기 작업을 해야 하지만 그래도 안드로이드 스튜디오 보다는 훨씬 쉬우며, 안드로이드 스튜디오에서는 텍스트 수준에서 라이브러리 improting 과 주소 맞추기 작업이 필수일 것이다.

 

이러한 과정을 통해 안드로이드 스튜디오 코딩을 습득하려는 이유는 TensorFlow Lite를 사용한 IOT 머신러닝을 위해서 머신러닝 과정에서 상당한 컴퓨팅 시간을 사용하여 얻어내는 학습 결과를 안드로이드에서 build.gradle(Module:app)에 설치 후 빌드하여 스마트폰에 입력 사용할 수 있도록 안드로이드 스튜디오를 익숙하게 사용해야 할 필요가 발생하였다.


SimpleCamera.zip


 


SimpleCamera.zip
0.13MB