Intent intent = new Intent( android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
String url = DefaultValue.TemporalImage;
Uri uri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), url));
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, uri);
startActivityForResult(intent, ActivityCode.Camera);
이런 방법으로 camera를 호출하여서 캡쳐뒤
Uri output_uri = Uri.fromFile( new File( Environment.getExternalStorageDirectory(), DefaultValue.TemporalImage ) );
intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType( uri, "image/*");
intent.putExtra("outputX", 720);
intent.putExtra("outputY", 480);
intent.putExtra("aspectX", 3);
intent.putExtra("aspectY", 2);
intent.putExtra("scale", true);
intent.putExtra("output", output_uri);
startActivityForResult(intent, ActivityCode.Crop);
이 방법으로 화면을 Crop하는데, 호출하는 Activity의 화면 회전시 새로 고침 부분은 호출하여 아무 처리도 안하게 해놨고요.
단지 Crop 하는 Activity에서 아래와 같은 오류를 뱉어내고 종료 됩니다.
비슷한 경우나 위와 같은 경우를 해결하신분 아낌없이 조언 부탁드립니다.
01-21 15:22:56.610: W/dalvikvm(1183): threadid=1: thread exiting with uncaught exception (group=0x40c351f8)
01-21 15:22:56.625: E/AndroidRuntime(1183): FATAL EXCEPTION: main
01-21 15:22:56.625: E/AndroidRuntime(1183): java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@41583260
01-21 15:22:56.625: E/AndroidRuntime(1183): at android.graphics.Canvas.throwIfRecycled(Canvas.java:1038)
01-21 15:22:56.625: E/AndroidRuntime(1183): at android.graphics.Canvas.drawBitmap(Canvas.java:1142)
01-21 15:22:56.625: E/AndroidRuntime(1183): at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:393)
01-21 15:22:56.625: E/AndroidRuntime(1183): at android.widget.ImageView.onDraw(ImageView.java:910)
01-21 15:22:56.625: E/AndroidRuntime(1183): at com.cooliris.media.CropImageView.onDraw(CropImage.java:1708)
01-21 15:22:56.625: E/AndroidRuntime(1183): at android.view.View.draw(View.java:11152)
01-21 15:22:56.625: E/AndroidRuntime(1183): at android.view.ViewGroup.drawChild(ViewGroup.java:2887)
01-21 15:22:56.625: E/AndroidRuntime(1183): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
01-21 15:22:56.625: E/AndroidRuntime(1183): at android.view.ViewGroup.drawChild(ViewGroup.java:2885)
01-21 15:22:56.625: E/AndroidRuntime(1183): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
01-21 15:22:56.625: E/AndroidRuntime(1183): at android.view.ViewGroup.drawChild(ViewGroup.java:2885)
01-21 15:22:56.625: E/AndroidRuntime(1183): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
01-21 15:22:56.625: E/AndroidRuntime(1183): at android.view.ViewGroup.drawChild(ViewGroup.java:2885)
01-21 15:22:56.625: E/AndroidRuntime(1183): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
01-21 15:22:56.625: E/AndroidRuntime(1183): at android.view.ViewGroup.drawChild(ViewGroup.java:2885)
01-21 15:22:56.625: E/AndroidRuntime(1183): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
01-21 15:22:56.625: E/AndroidRuntime(1183): at android.view.View.draw(View.java:11155)
01-21 15:22:56.625: E/AndroidRuntime(1183): at android.widget.FrameLayout.draw(FrameLayout.java:450)
01-21 15:22:56.625: E/AndroidRuntime(1183): at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2290)
01-21 15:22:56.625: E/AndroidRuntime(1183): at android.view.ViewRootImpl.draw(ViewRootImpl.java:2165)
01-21 15:22:56.625: E/AndroidRuntime(1183): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1771)
01-21 15:22:56.625: E/AndroidRuntime(1183): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2583)
01-21 15:22:56.625: E/AndroidRuntime(1183): at android.os.Handler.dispatchMessage(Handler.java:99)
01-21 15:22:56.625: E/AndroidRuntime(1183): at android.os.Looper.loop(Looper.java:137)
01-21 15:22:56.625: E/AndroidRuntime(1183): at android.app.ActivityThread.main(ActivityThread.java:4507)
01-21 15:22:56.625: E/AndroidRuntime(1183): at java.lang.reflect.Method.invokeNative(Native Method)
01-21 15:22:56.625: E/AndroidRuntime(1183): at java.lang.reflect.Method.invoke(Method.java:511)
01-21 15:22:56.625: E/AndroidRuntime(1183): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
01-21 15:22:56.625: E/AndroidRuntime(1183): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
01-21 15:22:56.625: E/AndroidRuntime(1183): at dalvik.system.NativeStart.main(Native Method)
01-21 15:22:56.630: W/ActivityManager(2175): Force finishing activity r.intent.getComponent().flattenToShortString()
이미 리사이클 된 bitmap 객체를 사용하려고 해서 죽은거 아닌가요^^;