2017-05-11 2 views
0

J'ai des problèmes avec l'allocation dans mon application. Puis-je utiliser le glissement sur les graphiques et minimiser ce problème?Jeu de mémoire Android

buttonGraphic[0] = R.drawable.memory3; 
    buttonGraphic[1] = R.drawable.memory4; 
    buttonGraphic[2] = R.drawable.memory5; 
    buttonGraphic[3] = R.drawable.memory6; 
    buttonGraphic[4] = R.drawable.memory7; 
    buttonGraphic[5] = R.drawable.memory1; 
    buttonGraphic[6] = R.drawable.memory8; 
    buttonGraphic[7] = R.drawable.memory2; 
+3

Pourriez-vous préciser votre question? Je ne comprends pas ... –

+0

Je suppose qu'il y a une exception OutOfMemoryException car il ne peut pas allouer alors je pense qu'il ne peut pas allouer de tas – Zoe

+0

En erreur j'ai ceci: "Impossible d'allouer une allocation de 142850316 octets avec 33553088 octets libres et 69 Mo jusqu'à OOM "donc je veux optimiser les graphiques avec glide ou quelque chose. – lili

Répondre

0

D'après ce que je comprends, (corrigez-moi si je me trompe), vous avez un OutOfMemoryException, ce qui signifie tas plus pour votre application.

En supposant que votre erreur est de créer un objet Bitmap

D'abord, je suppose buttonGraphic est un entier. Si vous souhaitez attribuer un drawable à un Bitmap, vous devez faire quelque chose comme ceci: (!. NOTE Il y a plusieurs façons de créer une instance de bitmap Ceci est, pas le chemin)

... = BitmapFactory.decodeResource(getResources()/*context.getResources()*/, R.drawable.memory8); 

Le tableau buttonGraphic doit être de type bitmap si vous attribuez comme un bitmap

si l'on suppose votre erreur est une OutOfMemoryException

Ceci est une erreur difficile, que vous utilisez plus de mémoire (tas/RAM) que votre application est accordée accès à.

La façon la plus simple de résoudre cette erreur est d'obtenir plus de mémoire. Cela se fait facilement avec cette ligne dans votre manifeste:

android:largeHeap="true" 
+0

Oui, j'ai ce problème OutOfMemoryException. J'essaye ça ce que tu dis. Merci – lili

0

Fixation OutOfMemoryException en définissant android: largeHeap « true » est une très mauvaise décision, il est une solution de contournement, mais pas une résolution.

Me recommandations sont les suivantes:

1. Essayez de réduire la taille des images (de 1000 * 1000px à 200 * 200px par exemple)

2. Rework mise en page/conception donc u ne pas besoin d'avoir 7 boutons lourds dessinables, pensez à différentes UI

3. Utilisez picasso