Оценете темата:
  • 0 гласа - средно 0
  • 1
  • 2
  • 3
  • 4
  • 5

Въпрос за картинки
#1

java.lang.OutOfMemoryError: bitmap size exceeds VM budget


тази грешка се причинява от твърде големи и много изображения с:
- висока резолюция
или
- голям размер
?

п.п. идеята ми е, ако се натъквам на подобна грешка (знам че има начини за освобождаване на паметта), въпроса ми е, ако смаля размера на изображенията с разваляне на качеството, но не на резолюцията, ще избегна ли грешката по-горе?
Цитирай
Аксесоари
#2

Подобен проблем с който не мога да се справя вече няколко дни. 

Моите грешки: 
Цитат:E/dalvikvm-heap﹕ Out of memory on a 635812-byte allocation.
и веднага след него: 
Цитат:E/AndroidRuntime﹕ FATAL EXCEPTION: GLThread 642
    java.lang.OutOfMemoryError
            at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
            at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:502)

Появява се след направата на много снимки(60+) чрез камерата. Последва съобщение "За съжаление Галерията спря". Въпросната снимка при ерора е празна а след това успешно се правят нови 60+ снимки преди да се повтори същата грешка. 

Първоначално пазех снимките във вътрешната памет. Реших да ги компресирам веднага след снимане и преди сейв. 
Освен компресия, режа, кълцам и какво ли не друго снимката(орязвам я до 6kb, качеството става ужасно, но задоволява нужния резултат):
Код:
final BitmapFactory.Options options = new BitmapFactory.Options();
           options.inJustDecodeBounds = true;
           options.inPreferredConfig = Bitmap.Config.RGB_565;//ARGB_8888;
BitmapFactory.decodeStream(new FileInputStream(file), null, options);
// Decode with inSampleSize
           final BitmapFactory.Options o2 = new BitmapFactory.Options();
           o2.inSampleSize = 8;
           final Bitmap bitmap = BitmapFactory.decodeStream(new FileInputStream(file), null, o2);
...
 bitmap.compress(Bitmap.CompressFormat.JPEG, photoQuality, stream);
           bitmap.recycle();
всичко това го дават като решение на този проблем, но при мен така и не се оправи.
Също така и увеличих хийпа в апп-а в манифеста(едно от многото предложения за решение на проблема):
Код:
android:largeHeap="true"
Също безуспешно. 
Последно започнах да пазя снимките във външната памет.

Цитат:/storage/emulated/0/Android/data/МОЯ_АПП/files/Pictures/МОЯ_ПАПКА/МОЯТА_СНИМКА.jpg
Проблема не се оправи. 

Отворен съм на всякакви предложения.

Nexus 5/ OnePlus 3T/ OnePlus 8T
Цитирай




Потребители разглеждащи темата: 1 гост(и)