2013-10-03 2 views
0

Je souhaite dessiner 13 bitmaps différents sur le canevas en utilisant la vue de la surface (il existe évidemment d'autres raisons d'utiliser la vue de surface). Pour ce faire, j'ai lancé un fil de jeu dans lequel j'ai appelé une méthode de vue de surface en boucle infinie et dans cette méthode, je dessine 13 bitmaps différents dans une boucle.Les images (bitmap) disparaissent lorsque vous dessinez sur le canevas lors de la visualisation en surface

Mais dans certains téléphones comme Samsung Galaxy S3, Galaxy S2 et dans les appareils Motorola, certains de mes bitmaps disparaissent juste après un certain temps.

Voici mon code pour bitmaps dessin:

for (int i = 0; i < 13; i++) {    

      // Drawing Bushes 
      canvas.drawBitmap(assets.bushes[this.bushes[i].frameNo - 1], null, 
        camera.getScaledRect(bushes[i].bounds.getRect()), 
        bitmapPaint); 

      /* 
      * drawBitmap(canvas, bushes[i], 
      * assets.bushes[this.bushes[i].frameNo - 1], camera); 
      */ 

      // Drawing Waves 
      if (waves[i].alpha != 0) { 
       bitmapPaint.setAlpha((int) (waves[i].alpha * 255)); 
       canvas.drawBitmap(assets.waves[this.waves[i].frameNo - 1], 
         null, camera.getScaledRect(waves[i].bounds.getRect()), 
         bitmapPaint); 
       bitmapPaint.setAlpha(255); 
      }  

     } 

Répondre

0

peut ici être une réponse. Les appareils plus anciens pourraient ne pas suivre. Essayez simplement d'échantillonner vos bitmaps. Cela a augmenté la performance pour moi. Il semble que l'écran est effacé quand il est intensif. Bien que la qualité soit un peu perdue.

http://developer.android.com/training/displaying-bitmaps/load-bitmap.html

statiques int calculateInSampleSize publics (options BitmapFactory.Options, int reqwidth, int reqheight); Public Bitmap decodeSampledBitmapFromResource (ressources res, int resId, int reqWidth, int reqHeight)

Questions connexes