2011-12-29 69 views
-1

我想在ImageView中加載圖像。所以,我提出:Image OutOfMemoryError

Intent gallery = new Intent(); 
    gallery.setType("image/*"); 
    gallery.setAction(Intent.ACTION_GET_CONTENT); 

,然後我們又回到了URI和媒體,其次是圖像加載到ImageView的。

但如果圖像的尺寸很大,我有以下異常:

12-29 17:51:25.240: ERROR/AndroidRuntime(24339): java.lang.OutOfMemoryError: bitmap size exceeds VM budget 
12-29 17:51:25.240: ERROR/AndroidRuntime(24339):  at android.graphics.Bitmap.nativeCopy(Native Method) 
12-29 17:51:25.240: ERROR/AndroidRuntime(24339):  at android.graphics.Bitmap.copy(Bitmap.java:315) 
12-29 17:51:25.240: ERROR/AndroidRuntime(24339):  at na.gioacchinodelprete.android.signatureimage.SignatureImageActivity.writeOnDrawable(SignatureImageActivity.java:290) 
12-29 17:51:25.240: ERROR/AndroidRuntime(24339):  at na.gioacchinodelprete.android.signatureimage.SignatureImageActivity.onActivityResult(SignatureImageActivity.java:258) 
12-29 17:51:25.240: ERROR/AndroidRuntime(24339):  at android.app.Activity.dispatchActivityResult(Activity.java:3934) 
12-29 17:51:25.240: ERROR/AndroidRuntime(24339):  at android.app.ActivityThread.deliverResults(ActivityThread.java:2532) 
12-29 17:51:25.240: ERROR/AndroidRuntime(24339):  at android.app.ActivityThread.handleSendResult(ActivityThread.java:2578) 
12-29 17:51:25.240: ERROR/AndroidRuntime(24339):  at android.app.ActivityThread.access$2000(ActivityThread.java:117) 
12-29 17:51:25.240: ERROR/AndroidRuntime(24339):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:965) 
12-29 17:51:25.240: ERROR/AndroidRuntime(24339):  at android.os.Handler.dispatchMessage(Handler.java:99) 
12-29 17:51:25.240: ERROR/AndroidRuntime(24339):  at android.os.Looper.loop(Looper.java:123) 
12-29 17:51:25.240: ERROR/AndroidRuntime(24339):  at android.app.ActivityThread.main(ActivityThread.java:3691) 
12-29 17:51:25.240: ERROR/AndroidRuntime(24339):  at java.lang.reflect.Method.invokeNative(Native Method) 
12-29 17:51:25.240: ERROR/AndroidRuntime(24339):  at java.lang.reflect.Method.invoke(Method.java:507) 
12-29 17:51:25.240: ERROR/AndroidRuntime(24339):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847) 
12-29 17:51:25.240: ERROR/AndroidRuntime(24339):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605) 
12-29 17:51:25.240: ERROR/AndroidRuntime(24339):  at dalvik.system.NativeStart.main(Native Method) 

幫我?? !!!

+0

這個問題已經回答了好幾次,不用再問了。的 – slayton 2011-12-29 20:47:24

+0

可能重複的[機器人:奇異出存儲器問題的](http://stackoverflow.com/questions/477572/android-strange-out-of-memory-issue) – slayton 2011-12-29 20:47:30

回答

-2

錯誤描述清楚,你的圖像大小不是由Dalvik虛擬機的支持。如果您的圖片尚未支持分辨率,請轉換並嘗試。如果已經在該分辨率中,則需要編輯並縮小圖像的大小。

+0

圖像的格式是無關的,僅分辨率事項。 – dmon 2011-12-29 17:09:53

+0

同意,這就是我的意思是通過使用位圖到JPEG。編輯我的答案。感謝您指點。 – kosa 2011-12-29 17:14:46

+0

@thinksteep當我開始在社區中幫助更多人並回答更多問題時提供一些建議:提供更多鏈接和/或示例代碼(這也會帶來更多的讚揚)。他如何編輯並縮小尺寸?沒有代碼或引用的三個句子的答案並不真的有幫助。無論如何,只是試圖傳遞我開始幫助時告訴我的信息。 :) – Jack 2011-12-29 17:39:45

4

這已經被問過很多次。您需要對圖像進行縮減採樣,以便它可以顯示在ImageView中。有關解決方案,請參閱this question。請記住圖像需要W x H x 4 bytes存儲在內存中並顯示。