ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 코틀린으로 카메라 프리뷰
    안드로이드 2019. 3. 2. 17:14

    코틀린으로 카메라 프리뷰 



    기능

    - 앱을 열면 카메라 프리뷰가 보이기 

    - 사진 찍기 (다음시간)

    - 사진 가져오기 (다음시간)



    알아야 할 것

    - 카메라 프리뷰를 하기 위해서는 카메라 퍼미션이 필요

    - 사진을 저장하기 위해서 write하는 퍼미션 필요 

    - surfaceview를 사용하여 카메라 preview를 작동시켜야 한다



    안드로이드 홈페이지에 들어가보면 camera preview를 하기 위해서는 surfaceView 를 사용해야 한다고 쓰여져 있다.

    그러기 위해서는 이미지를 그려주는 surfaceHolder.callback도 구현해야 한다.


    참조 : https://developer.android.com/guide/topics/media/camera.html#kotlin



    그래서 만드는 방법은  

    1. 퍼미션

    2, 카메라 객체 가져오기

    3. 카메라 프리뷰 클래스 만들기 (extends surfaceView, implements surfaceHolder.callback)

    4. 카메라 프리뷰 클래스와 frameLayout 연결



    아래처럼  퍼미션들 추가 





    또한 안드로이드 6.0이상은 requestPermission 까지 해줘야 한다.

    아래처럼 permission을 동의했는지 안했는지 체크해주고  동의를 안했으면 requestPermission()을 해준다.





    layout 은 camera preview를 위한 framelayout 을 구성하였다.







    카메라 객체를 가져와야 한다 (Camera.open())




    카메라 프리뷰 클래스 


    카메라 프리뷰 클래스를 만들기에 앞서  카메라 프리뷰 클래스는 surfaceView를 상속받고, surfaceHolder.callback을 implements한다.

    holder가 surfaceView를 그리는 것이다.

    그래서 implements 하게 되면 3가지 함수를 구현해야 한다.

    1.  SurfaceCreated

    2. SurfaceChanged

    3. SurfaceDestroyed

    각 함수에 대해서는 코드안에 주석으로 있으니 참고하길 바람 ! 






    이런식으로 하면 카메라 프리뷰가 잘 작동한다.


    궁금하거나 문의사항 있으면 댓글에 남겨주세요~















    출처는 https://developer.android.com/training/camera/cameradirect


Designed by Tistory.