2012-08-13 1 views
0

Je suis en train de développer Android et est allé dans un très grave problème:ne peut pas appeler onDraw (de toile Canvas) avec mise à jour()

@Override 
protected void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 
    Log.i("GAME", "onDraw Called"); 
    for(int i = 0; i < totalEggNumbers -1; i++) { 
     if (egg[i].isKilled = false) 
     canvas.drawBitmap(image[egg[i].getEggNum()], egg[i].getX(), egg[i].getY() + 100, paint); 
     Log.i("GAME", "Something Drawn"); 
    } 
} 

// called by thread 
public void update() { 
     //Chance to make egg 
    Log.i("GAME", "Updated Game"); 
    eggMaker.randomEgg(difficulty); 
    postInvalidate(); 
} 

Le onDraw ne sera jamais appelé et je ne peux pas trouver le journal dans logcat après que je terminé l'application, mais quand il est en cours d'exécution, je pouvais voir un "onDraw Called" apparaître et disparaître de temps en temps.

Im vraiment désespérée ... J'utilise Android view btw. Un moyen d'appeler la méthode onDraw? J'ai essayé invalidate(); et aucune chance, s'il vous plaît modifier mon Code :)

Répondre

0

Essayez de faire votre image comme objet BitMap avant de passer à la Methode DrawBitmap

Bitmap bmp = BitmapFactory.decodeResource(
     getResources(), image[egg[i].getEggNum()); 
+0

Je recherche quelque chose de similaire, mais je suis sûr que la toile .Android ne fonctionne pas comme la toile JS. Pas besoin d'appeler onDraw, il suffit de définir ViewGroup view; view = (ViewGroup) findViewById (R.id.YOURID); view.setWillNotDraw (false); –

Questions connexes