안드로이드 개발 질문/답변
(글 수 45,052)
public class CameraD extends Activity{
public CamView camView = null;
public byte[] data = null;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.camera);
/**
* FrameLayout에 SurfaceView(camView)를 이용해 카메라 프리뷰 설정
*/
FrameLayout cameraFrame = (FrameLayout) findViewById(R.id.cameraFrame);
camView = new CamView(this);
cameraFrame.addView(camView);
/**
* 각 버튼들 선언
*/
ImageView capture = (ImageView) findViewById(R.id.capture);
/**
* capture 버튼 OnClickListener
*/
capture.setOnClickListener(new OnClickListener(){
public void onClick(View v){
mShutterListener.onShutter();
}
});
}
private Camera.ShutterCallback mShutterListener = new Camera.ShutterCallback() {
@Override
public void onShutter() {
Log.i(TAG, "onShutter");
if(camView != null){
camView.camera.takePicture(mShutterListener, null, mPictureListener);
}
}
};
/**
* 이미지 저장을 위한 함수들
*/
private Camera.PictureCallback mPictureListener = new Camera.PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
Log.i(TAG, "Picture Taken");
if(data != null){
Log.i(TAG, "PNG Picture Taken");
int resizeHeight = 200;
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length, null);
}
bitmap.compress(CompressFormat.JPEG, 100, bos);
data = bos.toByteArray();
camera.startPreview();
}
}
};
메인액티비티에서 CameraD액티비티로 넘어오고서,
capture버튼을 누르면 mShutterListener.onShutter(); 로 사진을 찍습니다
그런데 사진찍고 startPreview()와 Intent를 이용해서 불러왔던 메인액티비티로 돌아가는 것을 지정했는데 작동하지않고
로그를보니 onShutter()만 3번 작동한 후에 InvocationTargetException 뜨면서 죽어버립니다
왜이럴까요 ㅠㅠ 예제따라서 만들었는데..



