Android не хватает памяти при назначении переменных
Итак, я получаю это:
'01-01 20:37:34.859: E/dalvikvm-heap(19921): Out of memory on a 6471856-byte allocation.'
При попытке присвоить кучу переменных памяти. Я'm присваивая 24 переменные, подобные этим:
mElements.add(new ShopElement(getResources(),R.drawable.shop_starter, b1X , b1Y,true,1,"red",true,5,checkLocked(0)));
И один из них:
bNumbers = new Bitmap[] {Bitmap.createScaledBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.h0)
, 65,65, true),
Bitmap.createScaledBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.h1)
, 65,65, true),
Bitmap.createScaledBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.h2)
, 65,65, true),
Bitmap.createScaledBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.h3)
, 65,65, true),
Bitmap.createScaledBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.h4)
,65,65,true),
Bitmap.createScaledBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.h5)
, 65,65, true),
Bitmap.createScaledBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.h6)
, 65,65, true),
Bitmap.createScaledBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.h7)
, 65,65, true),
Bitmap.createScaledBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.h8)
, 65,65, true),
Bitmap.createScaledBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.h9)
, 65,65, true),
Bitmap.createScaledBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.time)
, 50,50, true)};
Но прежде чем я смогу пройти № 16 из 24 элементов, которые ям, он падает на определенных телефонах.
у меня естьGalaxy S2 и работает нормально, но наS3 и другие телефоны это вылетает.
Я буду рад предоставить дополнительную информацию по запросу.
Я искал эту ошибку раньше, пытался применить решения и просматривал "Эффективное отображение растровых изображений " вещь, но, кажется, ничего не помогает.
Что вращает мою голову, так это то, что она работает на S2, но не на S3. не должен»S3 превосходит S2 во всех отношениях?
Я использую глобальные BitmapFactory.Options для рисования всех своих растровых изображений. Я устанавливаю следующие параметры:
Global.opts = new BitmapFactory.Options();
Global.opts.inDither=false;
Global.opts.inPurgeable=true;
Global.opts.inInputShareable=true;
Global.opts.inTempStorage=new byte[16 * 1024];