SurfaceView를 CameraPreview를 위해 사용하는 경우

holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); <<와 같이 타입을 정해주잖아요? 이게 없으면 에러가 발생하는데요

이렇게 하면 View에 그림을 그릴 수는 없는건가요?


어떤 게임강좌를 보면서 저렇게 그리면 되겠군 하고 적용해보았는데 에러가 발생하네요..

06-02 18:15:14.370: ERROR/AndroidRuntime(5312): FATAL EXCEPTION: Thread-9

06-02 18:15:14.370: ERROR/AndroidRuntime(5312): android.view.SurfaceHolder$BadSurfaceTypeException: Surface type is SURFACE_TYPE_PUSH_BUFFERS

06-02 18:15:14.370: ERROR/AndroidRuntime(5312):     at android.view.SurfaceView$3.internalLockCanvas(SurfaceView.java:761)

06-02 18:15:14.370: ERROR/AndroidRuntime(5312):     at android.view.SurfaceView$3.lockCanvas(SurfaceView.java:752)

06-02 18:15:14.370: ERROR/AndroidRuntime(5312):     at mg.FirstMission_AR.SurfaceView$viewThread.run(SurfaceView.java:85)

06-02 18:15:14.370: ERROR/AndroidRuntime(5312): *** KLAATU --1 

06-02 18:15:14.370: ERROR/AndroidRuntime(5312): android.view.SurfaceHolder$BadSurfaceTypeException: Surface type is SURFACE_TYPE_PUSH_BUFFERS

06-02 18:15:14.370: ERROR/AndroidRuntime(5312):     at android.view.SurfaceView$3.internalLockCanvas(SurfaceView.java:761)

06-02 18:15:14.370: ERROR/AndroidRuntime(5312):     at android.view.SurfaceView$3.lockCanvas(SurfaceView.java:752)

06-02 18:15:14.370: ERROR/AndroidRuntime(5312):     at mg.FirstMission_AR.SurfaceView$viewThread.run(SurfaceView.java:85)

06-02 18:15:14.581: ERROR/CameraHardwareSec(3667): Smartautoscene thread was already stop

06-02 18:15:14.585: ERROR/SecCamera(3667): Blur is not setting in Back camera.

06-02 18:15:14.589: ERROR/MediaPlayerService(3667): Client::notify In

06-02 18:15:14.589: ERROR/MediaPlayer(3667): message received msg=1, ext1=0, ext2=0

06-02 18:15:14.593: ERROR/MediaPlayerService(3667): Client::notify In

06-02 18:15:14.593: ERROR/MediaPlayer(3667): message received msg=1, ext1=0, ext2=0

06-02 18:15:17.765: ERROR/CameraHardwareSec(3667): Smartautoscene thread was already stop

06-02 18:15:17.765: ERROR/SecCamera(3667): Blur is not setting in Back camera.

06-02 18:15:19.339: ERROR/WindowManager(3675): Overwriting rotation value from 1

06-02 18:15:19.632: ERROR/Launcher(3739): setWindowOpaque()

06-02 18:15:19.925: ERROR/SecCamera(3667): stopPreview: m_flag_camera_start is zero


코드는 다음과 같습니다.


public void run(){

Canvas canvas = null;

while(canRun){

canvas = mHolder.lockCanvas();

try{

synchronized(mHolder){

canvas.drawBitmap(Image, x, y, null);

}

}finally{

if(canvas != null)

mHolder.unlockCanvasAndPost(canvas); //버퍼에 그린것을 뷰에 옮긴다.

}// finally

}// while

}// method run()


어떻게 해야 preview위에 이미지를 그릴 수 있을까요?