일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 3d
- PHP
- Node
- CI/CD
- package-lock.json
- web
- version mismatch
- vue-template-compiler
- JavaScript
- array
- EM6
- VR
- 상태관리
- vuex
- bootstrap
- AR
- JS
- vue
- aframe
- Three.js
- PDO
- WebXR
- auth0
- promise
- WebVR
- npx
- javscript
- vuetify
- A-Frame
- Component
- Today
- Total
대가는 결과를 만든다
surfaceview와 CameraSource 본문
Surfaceview를 사용하기에 앞서
-안드로이드는 3D지원을 위해 내부에 OpenGL ES 라이브러리를 포함하고 있음
*Open GL ES (Graphic Library Embeded System)
-3D객체를 보여주기위해 surfaceview를 이용 (하드웨어 가속이 가능해 그래픽 처리가 빠르기 때문에)
(참고 : 젤리빈 버전 이후에는 일반 뷰에서도 하드웨어 가속기능 사용할 수 있게됨)
-안드로이드 기본 뷰 체계와 별도로 구현되어 있어 쓰는 방법을 별도로 이해해야 함
Surfaceview 세가지 특징
1) SurfaceHolder : 서피스뷰에 필요한 제어기능을 가지고 있다. 필수적으로 만들어 사용하게되는 객체
-연관 메서드 예시 : SurfaceView.getHolder(); //서피스홀더를 리턴함
CameraSource.start(SurfaceHolder); //카메라
2) Callback 인터페이스 구현(SurfaceHolder.Callback) : 서페이스뷰의 생성, 변경, 해제 메소드가 정의되어있음. 상ㅌ내의 변화에 따라 자동으로 호출됨
- surfaceCreated(SurfaceHolder surface)
- surfaceChanged(SurfaceHolder holder, int format, int width, int height)
- surfaceDestroyed(SurfaceHolder surface)
3) Lock기능 : 앱에서 서피스뷰에 그래픽 그릴때 시스템이나 다른 App에서 접근 막기위해 잠금 기능 사용
예) 서피스뷰의 크기 변경과 동시에 그래픽 그릴경우 데드락 발생 -> 방지위해 lockCanvas(), unlockAndPost() 사이 그래픽 그리는 작업 수행
+ 앞서 말한 것과 같이 서피스뷰는 안드로이드 기본뷰에 속하지 않아 onDraw(), invalidate()메소드를 사용할 수 없음.
따라서 화면에 그래픽을 그리기 위한 별도의 메소드 정의해야함.
예)
private void draw(){
Canvas canvas = null;
try{
canvas = SurfaceHolder.lockCanvas(null);
//그래픽 그리기 작업
}finally{
if(canvas!=null){
}
}
}
참고 : Do it 안드로이드 앱 프로그래밍
CameraSource 객체란
: 지정된 속도로 카메라에서 미리보기 프레임을 수신하여 해당 프레임을 처리할 수 있는 속도로 Detector로 전송하는 객체
주요 메서드
start(SurfaceHolder); //카메라를 열고 미리보기 프레임을 기본 감지기서페이스뷰로 보내기 시작
stop(); //카메라를 닫고 기본 프레임 검출기로 프레임 전송을 중지
release(); //카메라를 정지시키고 카메라 및 기본 탐지기의 자원을 해제
getPreviewSize(); //기본 카메라에서 현재 사용중인 미리보기 크기를 반환
getCameraFacing(); //선택한 카메라를 반환합니다. CAMERA_FACING_BACK
/CAMERA_FACING_FRONT
공홈 레퍼런스 : https://developers.google.com/android/reference/com/google/android/gms/vision/CameraSource
'개발 > Android' 카테고리의 다른 글
Error:Cannot fit requested classes in a single dex file 오류 (0) | 2018.06.20 |
---|---|
누가 버전 이상 사진 촬영 시 발생하는 FileUriExposedException (0) | 2018.06.19 |
각종 API 사용시 필요한 해쉬키 혹은 SHA-1 가져오는 방법 (0) | 2018.06.18 |
SwipeRefreshLayout 과 NestedScrollView (0) | 2018.06.06 |