2016-10-28 1 views
-1

ceci est mon code pour dessiner du texte.Comment puis-je ajouter une barre de progression à ma toile sans xml?

public void drawText(Canvas canvas) 
{ 



    Paint paint = new Paint(); 
    paint.setColor(Color.BLACK); 
    paint.setTextSize(30); 
    paint.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.BOLD)); 
    canvas.drawText("DISTANCE: " + (player.getScore()) + " M", 10, HEIGHT - 10, paint); 
    canvas.drawText("BEST: " + HighScore + " M", WIDTH - 215, HEIGHT - 10, paint); 



    if(!player.getPlaying()&&newGameCreated&&reset) 
    { 

     Bitmap b2 = BitmapFactory.decodeResource(getResources(), R.drawable.coollogo); 
     canvas.drawBitmap(b2, WIDTH/2 - 440, HEIGHT/2 - 360, paint); 



     canvas.drawRect(380, 380,630,465 , paint); 
     canvas.drawBitmap(b1, WIDTH/2 - 260, HEIGHT/2 + 20, paint); 




    } 

} 

j'ai maintenant ceci: enter image description here

Je veux comme ceci:

enter image description here

Je veux une barre de progression sur ce lieu, afin que vous puissiez monter de niveau dans le jeu. Pas de barre de chargement, juste une barre de progression pour voir jusqu'où vous vous situez! Quelqu'un peut-il faire cela pour moi ou comment puis-je faire cela ??

Merci beaucoup

Répondre

1
animator= ValueAnimator.ofFloat(0, 1); 

     // It will take 5000ms for the animator to go from 0 to 1 
     animator.setDuration(5000); 

     // Callback that executes on animation steps. 
     animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { 
      @Override 
      public void onAnimationUpdate(ValueAnimator animation) { 
       animationValue=((Float) (animation.getAnimatedValue())).floatValue(); 

       if(animationValue<=1.0 && animationValue>0.0) { 
        Log.i(TAG, "onAnimationUpdate: .... " + animationValue); 
        invalidate(); 
       } 
      } 
     }); 

Pour dessiner des progrès en utilisant animationValue

canvas.drawRect(0,0,canvas.getWidth()*animationValue,getWidth()/8,mBackgroundBorder); 
+0

qu'est-ce que c'est, qu'est-ce que ce code? –

+0

Code pour afficher les progrès sur la toile –

+0

de quelle façon? sous la forme d'une barre de progression? ou juste du texte? –

1
ProgressBar progressBar = new ProgressBar(activity, null, android.R.attr.progressBarStyleSmall); 

Pour afficher la barre de progression écrire progressbar.show(); et pour l'écriture cacher progressbar.dismiss();

Par exemple: -

public void drawText(Canvas canvas) 
{ 

ProgressBar progressBar = new ProgressBar(activity, null, android.R.attr.progressBarStyleSmall); 
progressBar.show(); 
Paint paint = new Paint(); 
paint.setColor(Color.BLACK); 
paint.setTextSize(30); 
paint.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.BOLD)); 
canvas.drawText("DISTANCE: " + (player.getScore()) + " M", 10, HEIGHT - 10, paint); 
canvas.drawText("BEST: " + HighScore + " M", WIDTH - 215, HEIGHT - 10, paint); 



if(!player.getPlaying()&&newGameCreated&&reset) 
{ 

    Bitmap b2 = BitmapFactory.decodeResource(getResources(), R.drawable.coollogo); 
    canvas.drawBitmap(b2, WIDTH/2 - 440, HEIGHT/2 - 360, paint); 



    canvas.drawRect(380, 380,630,465 , paint); 
    canvas.drawBitmap(b1, WIDTH/2 - 260, HEIGHT/2 + 20, paint); 




} 

} 
+0

Cela ne fonctionne pas si je copie votre code et le colle sur mon code. –

+0

peut être parce que vous avez écrit des méthodes .show() et .Dismiss() en continu n'écrivent pas 'progressbar.dismiss()' –

+0

il donne une erreur quand j'appelle progressbar.show(); –