2011-11-14 4 views
0
Bitmap top; 
int x; 
public ViewExample() { 
    top = BitmapFactory.decodeResource(getResources(), R.drawable.top); 

    Thread thread = new Thread(){ 
     public void run(){ 
      while(true){ 
       x++; 
       postInvalidate(); 
      } 
     } 
    }; 
    thread.start(); 
} 

@Override 
protected void onDraw(Canvas c) { 
    c.drawBitmap(top, x, 0, null); 
} 

J'essaie de dessiner des bitmap rapidement, que faire pour dessiner rapidement? (il est très lent et pas lisse)Android dessiner Bitmaps rapide

Répondre

0

si vous utilisez classe View pour créer la surface, il sera très lent, donc utiliser SurfaceView.

La vue de surface est utilisée pour créer une surface qui change fréquemment.

Go Pour en savoir plus.

+0

ah merci j'essaie avec surfaceview et est lisse et fine, mais puis-je faire un fond transparent surfaceview? – user1028269

+0

Marquer comme réponse si. –

+0

set paint Couleur transparente 0X00000000 peut rendre la vue transparente. –

1

Vous utilisez actuellement trop de puissance de votre téléphone. Vous devez laisser le fil dormir de temps en temps. 40 ms est un bon moment pour vous donner 25 fps.

Voici un exemple

public ViewExample() { 
    top = BitmapFactory.decodeResource(getResources(), R.drawable.top); 

    Thread thread = new Thread(){ 
     public void run(){ 
      while(true){ 
       x++; 
       postInvalidate(); 

       try 
       { 
        Thread.sleep(40); 
       } 
       catch (InterruptedException e) 
       { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 

       } 
      } 
     } 
    }; 
    thread.start(); 
} 
Questions connexes