2010-10-23 3 views
6

J'ai un jeu de cartes simple où l'utilisateur peut faire glisser et déposer des cartes autour de l'écran. Sur certains des téléphones Android 2.2 comme le Droid et EVO le dessin de la carte est très lent. C'est étrange car cela arrive sur certains des téléphones les plus rapides. Cependant, ce n'est pas tous les téléphones que je teste sur le Droid et Droid X et le programme fonctionne très bien fonctionne aussi bien sur un téléphone plus lent comme le G1. J'ai commencé à recevoir des rapports à ce sujet après que Motorolla ait sorti la mise à jour 2.2 pour le Droid.Pourquoi le dessin de bitmaps est-il très lent sur certains téléphones Android 2.2?

Voici le correctif que j'ai trouvé, mais il réduit vraiment la qualité de mes graphiques. Les dégradés ont l'air horribles.

Je changé cette

Bitmap.createBitmap(newBmp.getWidth(), newBmp.getHeight(), Bitmap.Config.ARGB_8888); 

à cette

Bitmap.createBitmap(newBmp.getWidth(), newBmp.getHeight(), Bitmap.Config.ARGB_4444); 

Le problème disparaît, mais les regards souffrent. J'ai besoin de garder le canal alpha, donc je ne peux pas utiliser RGB_565. Y a-t-il un moyen de conserver mes images de qualité et de ne pas les ralentir?

+0

Je ne connais pas le développement d'Android, mais est-ce que certains appareils utilisent un format bitmap natif différent? J'essaierais d'utiliser le format qui est natif de l'appareil, et je m'attends à ce que ce soit le plus rapide. – Lucero

+0

J'utilise des fichiers png. La chose étrange est que cela fonctionnera bien sur un Droid avec 2.1 mais lent sur certains téléphones Droid avec 2.2. Je pense que cela pourrait être un bug mais j'ai encore besoin d'un bon travail. – theJosh

+1

Quelle est la taille de ces cartes? Aussi, d'où obtenez-vous les Bitmaps? Les utilisez-vous comme des tampons hors écran? Quelle résolution sont les bitmaps? –

Répondre

0

Il est possible que ce soit un grand Bitmaps que vous essayez de traiter. Jetez un oeil à cette formation Android Loading Large Bitmaps Efficiently.

Je pense que cela pourrait améliorer vos performances et faire en sorte que les bitmaps de chargement ne bloquent pas le thread principal de l'interface utilisateur.