카메라 / 갤러리 어플을 공부삼아 개발하고 있는 학생입니다.
갤러리에서 이미지를 선택해 크게 확대해서 보고 back버튼을 누르면 다시 갤러리 목록 화면으로 넘어가야되는데
back키를 누르면 앱이 중지되어 종료가 되어버리네요.
public class ImageGridFull extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
ImageView imageView = new ImageView(this);
setContentView(imageView);
Intent intent = getIntent();
String path = intent.getStringExtra("path");
try {
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inSampleSize = 2;
Bitmap bm = BitmapFactory.decodeFile(path, opt);
imageView.setImageBitmap(bm);
}
catch (OutOfMemoryError e) {
Toast.makeText(ImageGridFull.this,"이미지가 너무 큽니다.",
Toast.LENGTH_SHORT).show();
}
}
}
이게 갤러리에서 이미지뷰로 띄워준 소스입니다.
소스에는 에러가 없구요. 어플 실행할때 logcat에 빨간 에러가 뜨면서 중지가 되어버립니다.
logcat의 에러내용은 아래와 같습니다.
08-09 17:36:53.641: E/AndroidRuntime(25479): FATAL EXCEPTION: main
08-09 17:36:53.641: E/AndroidRuntime(25479): java.lang.OutOfMemoryError
08-09 17:36:53.641: E/AndroidRuntime(25479): at android.graphics.BitmapFactory.nativeDecodeByteArray(Native Method)
08-09 17:36:53.641: E/AndroidRuntime(25479): at android.graphics.BitmapFactory.decodeByteArray(BitmapFactory.java:551)
08-09 17:36:53.641: E/AndroidRuntime(25479): at android.graphics.BitmapFactory.decodeByteArray(BitmapFactory.java:569)
08-09 17:36:53.641: E/AndroidRuntime(25479): at android.provider.MediaStore$InternalThumbnails.getThumbnail(MediaStore.java:598)
08-09 17:36:53.641: E/AndroidRuntime(25479): at android.provider.MediaStore$Images$Thumbnails.getThumbnail(MediaStore.java:1008)
08-09 17:36:53.641: E/AndroidRuntime(25479): at com.example.sgcamera.gallery.onCreate(gallery.java:46)
08-09 17:36:53.641: E/AndroidRuntime(25479): at android.app.Activity.performCreate(Activity.java:5206)
08-09 17:36:53.641: E/AndroidRuntime(25479): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
08-09 17:36:53.641: E/AndroidRuntime(25479): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074)
08-09 17:36:53.641: E/AndroidRuntime(25479): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)
08-09 17:36:53.641: E/AndroidRuntime(25479): at android.app.ActivityThread.access$700(ActivityThread.java:140)
08-09 17:36:53.641: E/AndroidRuntime(25479): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1237)
08-09 17:36:53.641: E/AndroidRuntime(25479): at android.os.Handler.dispatchMessage(Handler.java:99)
08-09 17:36:53.641: E/AndroidRuntime(25479): at android.os.Looper.loop(Looper.java:137)
08-09 17:36:53.641: E/AndroidRuntime(25479): at android.app.ActivityThread.main(ActivityThread.java:4921)
08-09 17:36:53.641: E/AndroidRuntime(25479): at java.lang.reflect.Method.invokeNative(Native Method)
08-09 17:36:53.641: E/AndroidRuntime(25479): at java.lang.reflect.Method.invoke(Method.java:511)
08-09 17:36:53.641: E/AndroidRuntime(25479): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)
08-09 17:36:53.641: E/AndroidRuntime(25479): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
08-09 17:36:53.641: E/AndroidRuntime(25479): at dalvik.system.NativeStart.main(Native Method)
고수님들의 답변 부탁드립니다!