티스토리 뷰
SeekBar를 이용한 카메라 줌인, 줌아웃 기능 제어하는 방법입니다.
먼저 Layout입니다.
<SeekBar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/zoom"
android:max="10" />
id는 Activity에서 사용할 id로 설정해주시면 되고, max는 최대 크기입니다. 10으로 설정 시 1~10까지 seekbar의 칸이 분리됩니다.
다음 Activity입니다.
ZoomseekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
int Zoom = progress * 6;
if(CameraPreview.params.getMaxZoom() < Zoom) {
Zoom = CameraPreview.params.getMaxZoom();
}
CameraPreview.params.setZoom(Zoom);
CameraPreview.mCamera.setParameters(CameraPreview.params);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) { }
@Override
public void onStopTrackingTouch(SeekBar seekBar) { }
});
SeekBar의 값 변경 시 호출되는 onProgressChanged 함수에서 처리해주시면 됩니다.
휴대폰 기종마다 지원되는 줌 크기가 다르기 때문에
Parameter의 getMaxZoom() 함수를 통해 최대 줌 크기값을 받아 올 수 있습니다.
제 기종의 경우 MaxZoom 값이 60이 나오네요.
애초에 SeekBar의 max 크기를 10으로 주었기 때문에,
Zoom값은 progress * 6 으로 설정했습니다.
setZoom()을 통해 줌 값을 넘겨주고, 파라미터 설정을 해주면 CameraPreview에서 정상 작동하는것을 확인 할 수 있습니다.
참고 :
정보가 유익하셨다면 아래 공감버튼 눌러주시면 감사하겠습니다.
질문사항은 댓글로 달아주시면 성의껏 답변해드리겠습니다.
'Android' 카테고리의 다른 글
| 안드로이드 OpenCV 관심영역(ROI) 추출 (3) | 2018.09.03 |
|---|---|
| 안드로이드 OpenCV 설치 (2) | 2018.09.03 |
| 안드로이드 핀치 줌 구현 - 멀티 터치 (0) | 2018.08.29 |
| 안드로이드 이미지 뷰 여백 없애기 (0) | 2018.08.28 |
| [안드로이드] 비트맵 이진화 처리 (1) | 2018.08.25 |
| [안드로이드] 실시간 SurfaceView 화면 캡쳐하기 (1) | 2018.08.24 |
| 안드로이드 특수키 제어하기 (3) | 2018.08.23 |
| [Android] 안드로이드 내부 저장소 텍스트 파일 읽기 및 쓰기 (2) | 2018.08.21 |
- Total
- Today
- Yesterday
- 상속
- 배열
- 클래스
- 데이터베이스
- 정보처리기사
- 리스트
- 벡터
- Android
- MySQL
- html
- 자료구조
- 자바
- 알고리즘
- 문자열
- C언어
- 파이썬
- 안드로이드
- 파일처리
- C
- Java
- 블루투스
- DB연동
- String
- C++ 클래스
- c#
- OpenCV
- 문제풀이
- C++
- Class
- 아두이노
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
