ADT Version : 0.9.5
01.
class
Preview
extends
SurfaceView
implements
SurfaceHolder.Callback {
02.
SurfaceHolder mHolder;
03.
04.
Preview(Context context) {
05.
super
(context);
06.
07.
// SurfaceHolder.Callback을 설정함으로써 Surface가 생성/소멸되었음을
08.
// 알 수 있습니다.
09.
mHolder = getHolder();
10.
mHolder.addCallback(
this
);
11.
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
12.
}
13.
14.
public
void
surfaceCreated(SurfaceHolder holder) {
15.
16.
}
17.
18.
public
void
surfaceDestroyed(SurfaceHolder holder) {
19.
20.
}
21.
22.
public
void
surfaceChanged(SurfaceHolder holder,
int
format,
int
w,
int
h) {
23.
24.
}
25.
26.
}
01.
class
Preview
extends
SurfaceView
implements
SurfaceHolder.Callback {
02.
SurfaceHolder mHolder;
// 1
03.
04.
Preview(Context context) {
05.
super
(context);
06.
07.
// SurfaceHolder.Callback을 설정함으로써 Surface가 생성/소멸되었음을
08.
// 알 수 있습니다.
09.
mHolder = getHolder();
// 2
10.
mHolder.addCallback(
this
);
// 3
11.
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
12.
}
01.
public
void
surfaceCreated(SurfaceHolder holder) {
02.
03.
}
04.
05.
public
void
surfaceDestroyed(SurfaceHolder holder) {
06.
07.
}
08.
09.
public
void
surfaceChanged(SurfaceHolder holder,
int
format,
int
w,
int
h) {
10.
11.
}
12.
13.
}
ADT Version : 0.9.5
01.
class
Preview
extends
SurfaceView
implements
SurfaceHolder.Callback {
02.
SurfaceHolder mHolder;
03.
Camera mCamera;
04.
05.
Preview(Context context) {
06.
super
(context);
07.
08.
// SurfaceHolder.Callback을 설정함으로써 Surface가 생성/소멸되었음을
09.
// 알 수 있습니다.
10.
mHolder = getHolder();
11.
mHolder.addCallback(
this
);
12.
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
13.
}
14.
15.
public
void
surfaceCreated(SurfaceHolder holder) {
16.
// Surface가 생성되었다면, 카메라의 인스턴스를 받아온 후 카메라의
17.
// Preview 를 표시할 위치를 설정합니다.
18.
mCamera = Camera.open();
19.
try
{
20.
mCamera.setPreviewDisplay(holder);
21.
}
catch
(IOException exception) {
22.
mCamera.release();
23.
mCamera =
null
;
24.
// TODO: add more exception handling logic here
25.
}
26.
}
27.
28.
public
void
surfaceDestroyed(SurfaceHolder holder) {
29.
// 다른 화면으로 돌아가면, Surface가 소멸됩니다. 따라서 카메라의 Preview도
30.
// 중지해야 합니다. 카메라는 공유할 수 있는 자원이 아니기에, 사용하지 않을
31.
// 경우 -액티비티가 일시정지 상태가 된 경우 등 - 자원을 반환해야합니다.
32.
mCamera.stopPreview();
33.
mCamera =
null
;
34.
}
35.
36.
public
void
surfaceChanged(SurfaceHolder holder,
int
format,
int
w,
int
h) {
37.
// 표시할 영역의 크기를 알았으므로 해당 크기로 Preview를 시작합니다.
38.
Camera.Parameters parameters = mCamera.getParameters();
39.
parameters.setPreviewSize(w, h);
40.
mCamera.setParameters(parameters);
41.
mCamera.startPreview();
42.
}
43.
44.
}
1.
class
Preview
extends
SurfaceView
implements
SurfaceHolder.Callback {
2.
SurfaceHolder mHolder;
3.
Camera mCamera;
// Camera객체 추가
01.
public
void
surfaceCreated(SurfaceHolder holder) {
02.
// Surface가 생성되었다면, 카메라의 인스턴스를 받아온 후 카메라의
03.
// Preview 를 표시할 위치를 설정합니다.
04.
mCamera = Camera.open();
05.
try
{
06.
mCamera.setPreviewDisplay(holder);
07.
}
catch
(IOException exception) {
08.
mCamera.release();
09.
mCamera =
null
;
10.
// TODO: add more exception handling logic here
11.
}
12.
}
1.
}
catch
(IOException exception) {
2.
mCamera.release();
3.
mCamera =
null
;
4.
// TODO: add more exception handling logic here
5.
}
1.
public
void
surfaceDestroyed(SurfaceHolder holder) {
2.
// 다른 화면으로 돌아가면, Surface가 소멸됩니다. 따라서 카메라의 Preview도
3.
// 중지해야 합니다. 카메라는 공유할 수 있는 자원이 아니기에, 사용하지 않을
4.
// 경우 -액티비티가 일시정지 상태가 된 경우 등 - 자원을 반환해야합니다.
5.
mCamera.stopPreview();
6.
mCamera =
null
;
7.
}
1.
public
void
surfaceChanged(SurfaceHolder holder,
int
format,
int
w,
int
h) {
2.
// 표시할 영역의 크기를 알았으므로 해당 크기로 Preview를 시작합니다.
3.
Camera.Parameters parameters = mCamera.getParameters();
// (1)
4.
parameters.setPreviewSize(w, h);
// (2)
5.
mCamera.setParameters(parameters);
// (3)
6.
mCamera.startPreview();
7.
}
01.
public
class
CameraPreview
extends
Activity {
02.
private
Preview mPreview;
03.
04.
@Override
05.
protected
void
onCreate(Bundle savedInstanceState) {
06.
super
.onCreate(savedInstanceState);
07.
08.
// Hide the window title.
09.
requestWindowFeature(Window.FEATURE_NO_TITLE);
10.
11.
// Create our Preview view and set it as the content of our activity.
12.
mPreview =
new
Preview(
this
);
13.
setContentView(mPreview);
14.
}
15.
16.
}
'Android_Programma' 카테고리의 다른 글
[ Android ] Json 방식으로 묶기. (0) | 2012.07.18 |
---|---|
[android] 영상처리 NDK 단에서 처리하여 리턴하기 (Image Processing in NDK) (5) | 2012.07.10 |
[android] [펌] SurfaceView를 이용한 움직이는 공 만들기 (0) | 2012.07.09 |
JNI 환경 구축하기 (0) | 2012.07.06 |
[JAVA] 비동기 소켓 클라이언트 (async socket client in JAVA) (0) | 2012.06.14 |