0

我想在画廊的缩放尺寸 imageView 上显示图像,下面是我的代码,

Uri selectedImageUri = data.getData();
                selectedImagePath = getPath(selectedImageUri);
                Bitmap bitmap = BitmapFactory.decodeFile(selectedImagePath);

                Bitmap bt=Bitmap.createScaledBitmap(bitmap, 150, 150, false);  

                image1.setImageBitmap(bt);
                image1.setVisibility(View.VISIBLE);
                image1.setImageURI(selectedImageUri);

如果我选择小尺寸的图像是可行的,但当图像尺寸较大时会失败。这是失败时显示的logcat错误,

05-22 21:52:19.737: E/(30916): Can't open file for reading
05-22 21:52:19.737: E/(30916): Can't open file for reading
05-22 21:52:42.277: E/dalvikvm-heap(30916): Out of memory on a 48000016-byte allocation.
05-22 21:52:42.297: E/AndroidRuntime(30916): FATAL EXCEPTION: main
05-22 21:52:42.297: E/AndroidRuntime(30916): java.lang.OutOfMemoryError
05-22 21:52:42.297: E/AndroidRuntime(30916):    at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
05-22 21:52:42.297: E/AndroidRuntime(30916):    at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:499)
05-22 21:52:42.297: E/AndroidRuntime(30916):    at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:357)
05-22 21:52:42.297: E/AndroidRuntime(30916):    at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:777)
05-22 21:52:42.297: E/AndroidRuntime(30916):    at android.graphics.drawable.Drawable.createFromStream(Drawable.java:737)
05-22 21:52:42.297: E/AndroidRuntime(30916):    at android.widget.ImageView.resolveUri(ImageView.java:562)
05-22 21:52:42.297: E/AndroidRuntime(30916):    at android.widget.ImageView.setImageURI(ImageView.java:340)
05-22 21:52:42.297: E/AndroidRuntime(30916):    at com.coderzheaven.save.imageindb.MainActivity.onActivityResult(MainActivity.java:100)
05-22 21:52:42.297: E/AndroidRuntime(30916):    at android.app.Activity.dispatchActivityResult(Activity.java:4649)
05-22 21:52:42.297: E/AndroidRuntime(30916):    at android.app.ActivityThread.deliverResults(ActivityThread.java:2996)
05-22 21:52:42.297: E/AndroidRuntime(30916):    at android.app.ActivityThread.handleSendResult(ActivityThread.java:3043)
05-22 21:52:42.297: E/AndroidRuntime(30916):    at android.app.ActivityThread.access$1100(ActivityThread.java:127)
05-22 21:52:42.297: E/AndroidRuntime(30916):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1188)
05-22 21:52:42.297: E/AndroidRuntime(30916):    at android.os.Handler.dispatchMessage(Handler.java:99)
05-22 21:52:42.297: E/AndroidRuntime(30916):    at android.os.Looper.loop(Looper.java:137)
05-22 21:52:42.297: E/AndroidRuntime(30916):    at android.app.ActivityThread.main(ActivityThread.java:4441)
05-22 21:52:42.297: E/AndroidRuntime(30916):    at java.lang.reflect.Method.invokeNative(Native Method)
05-22 21:52:42.297: E/AndroidRuntime(30916):    at java.lang.reflect.Method.invoke(Method.java:511)
05-22 21:52:42.297: E/AndroidRuntime(30916):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:823)
05-22 21:52:42.297: E/AndroidRuntime(30916):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)
05-22 21:52:42.297: E/AndroidRuntime(30916):    at dalvik.system.NativeStart.main(Native Method)

请问我是什么问题以及如何解决它?

**编辑:如果我选择使用手机相机拍摄的图像时出现错误,但如果我选择从某处(例如whatapps)下载的照片会成功。这是怎么回事?P/S:顺便说一下,结果只显示了原始大小,但不能缩放大小。请帮忙!!

4

0 回答 0