在我的android應用程序中,我必須允許用戶單擊按鈕打開圖庫並選擇圖像。然後需要將特定的選定圖像加載到我的佈局(UI)中的圖像視圖中。我有一些代碼,但它來java.lang.outofmemory.Please任何人都可以幫助我?Android:應用程序在上傳圖像時在設備上崩潰,java.lang.outofMemoryError
1
A
回答
3
你應該解碼在onActivityResult()方法中的圖像URI。 將此方法調用decodeBitmap。
/**
* This is very useful to overcome Memory waring issue while selecting image
* from Gallery
*
* @param selectedImage
* @param context
* @return Bitmap
* @throws FileNotFoundException
*/
public static Bitmap decodeBitmap(Uri selectedImage, Context context)
throws FileNotFoundException {
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeStream(context.getContentResolver()
.openInputStream(selectedImage), null, o);
final int REQUIRED_SIZE = 100;
int width_tmp = o.outWidth, height_tmp = o.outHeight;
int scale = 1;
while (true) {
if (width_tmp/2 < REQUIRED_SIZE || height_tmp/2 < REQUIRED_SIZE) {
break;
}
width_tmp /= 2;
height_tmp /= 2;
scale *= 2;
}
BitmapFactory.Options o2 = new BitmapFactory.Options();
o2.inSampleSize = scale;
return BitmapFactory.decodeStream(context.getContentResolver()
.openInputStream(selectedImage), null, o2);
}
有關詳情,請儘管話題顯示位圖高效
http://developer.android.com/training/displaying-bitmaps/index.html
希望這有助於。
+0
謝謝你很多..工作精細.. – shakthivel
0
在這裏,你會發現爲什麼你這個例外,如何正確地顯示位圖:http://developer.android.com/training/displaying-bitmaps/index.html
相關問題
- 1. 應用程序在設備上崩潰
- 2. Android應用程序在設備上啓動時崩潰
- 3. Android應用程序在Android 5設備上崩潰
- 4. Android地圖應用在啓動時在設備上崩潰
- 5. 應用程序崩潰只在設備上,但不在emulator上
- 6. Android - 應用程序在Pre-Lollipop設備上崩潰
- 7. Android應用程序只在設備上崩潰
- 8. 在某些設備上崩潰的Android應用程序
- 9. 應用程序在設備上運行時突然崩潰
- 10. 應用程序在設備上調試時崩潰
- 11. 加載圖像時發生應用程序崩潰(java.lang.OutOfMemoryError)
- 12. Android應用程序在移動設備上崩潰,但在Eclipse上運行!
- 13. android應用程序在startActivity上崩潰()
- 14. Android應用程序在starup上崩潰
- 15. bada應用在設備上崩潰
- 16. 應用程序在設備上崩潰,而只使用儀器
- 17. 在真實設備上測試時Android應用崩潰
- 18. huawaei設備上的應用程序崩潰(Android 6.0 api 23)
- 19. 更新後應用程序在某些設備上崩潰
- 20. 在iOS設備上崩潰的應用程序
- 21. Winforms應用程序在手持設備上崩潰
- 22. 應用程序在3GS設備上崩潰
- 23. 我的應用程序在設備上崩潰
- 24. 應用程序在設備上的電子郵件崩潰
- 25. iPhone:應用程序在特定設備上崩潰
- 26. iOS應用程序在沒有崩潰信息的設備上崩潰
- 27. AVAnimator在設備上崩潰
- 28. Digits.sharedInstance()在設備上崩潰
- 29. Android應用程序在設備上運行完美,但在模擬器崩潰
- 30. 應用程序適用於某些設備,但在其他設備上崩潰
您正在加載的位圖可能對測試設備上可用的內存量太大。或者,您可能一次將太多位圖加載到庫中。人們經常碰到這種情況,在處理Android上的位圖時,必須對代碼進行一些預先考慮。這裏是由羅曼蓋伊介紹這個話題:https://dl.google.com/io/2009/pres/Th_0230_TurboChargeYourUI-HowtomakeyourAndroidUIfastandefficient.pdf – Turnsole
@Tnsnsole謝謝你的工作很好 – shakthivel