안드로이드 개발 질문/답변
(글 수 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 뜨면서 죽어버립니다
왜이럴까요 ㅠㅠ 예제따라서 만들었는데..