2011-08-31 4 views
0

Dans mon application Android, je dois afficher un texte sur une image. Le texte est entré par l'utilisateur dans un alertDialog. Ce texte je dois le centrer sur le fond de l'image. Je dessine le texte sur l'image avec ceci:Centre du texte sur l'image dans Android?

private Canvas drawTextImage(Bitmap b) { 
     Canvas c = new Canvas(b); 
     Paint paint = new Paint(); 
     paint.setColor(getResources().getColor(R.color.orange)); 

     paint.setStrokeWidth(30); 
     paint.setAntiAlias(true); 
     paint.setTextSize(40); 
     c.drawText(text, 350, 900, paint); 

     c.translate(300, 50); 
     return c; 
    } 

Mon alertDiallg est la suivante:

 final AlertDialog.Builder alert = new AlertDialog.Builder(this); 
    alert.setTitle("Enter a text "); 
    final EditText input = new EditText(this); 
    InputFilter[] FilterArray = new InputFilter[1]; 
    FilterArray[0] = new InputFilter.LengthFilter(25); 
    input.setFilters(FilterArray); 

    alert.setView(input); 
    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int whichButton) { 
      text = input.getText().toString().trim(); 
      Canvas c = new Canvas(bitmapResult); 
      drawTextImage(bitmapResult); 
      saveimage(); 
     } 
    }); 

    alert.setNegativeButton("Cancel", 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int whichButton) { 
        dialog.cancel(); 
        saveimage(); 
       } 
      }); 

    alert.show(); 

texte Tehe doit être le centre selon sa longueur. Comment puis-je faire ceci?

Merci à l'avance ..

Répondre

3

Utilisez

Paint.setTextAlign(Paint.Align.CENTER); 

sur les thats peinture utilisés pour dessiner votre texte.

SetTextAlign public void (Paint.Align align)

Définissez l'alignement du texte de la peinture. Cela contrôle la position du texte par rapport à son origine. Alignement GAUCHE signifie que tout le texte sera dessiné à droite de son origine (c'est-à-dire que l'origine a spécifié le bord GAUCHE du texte) et ainsi de suite.

Source


Edit: Dans le texte de tirage, vous devez spécifier la moitié avec de l'image que la coordonnée x (centre), la coordonnée y devrait rester la même (quelque part le long du fond, selon la hauteur que vous voulez).

+1

ok ... mais dans la méthode drawText que devrais-je mettre? – Gabrielle

+0

Édité ma réponse. –