2010-10-18 7 views
0

Je voudrais savoir comment rendre un texte sur un bitmap 48x48 dans mon application android, en considérant parfois que le texte dépasse la largeur de bitmap. Dans ce cas, je n'ai besoin de rendre qu'une partie du texte suivi par des points tels que tout correspond à la largeur disponible!Texte Rendu sur bitmap

Merci!

Mise à jour, voici le code je:

Bitmap renderSurface = icon.createBitmap(); 
    Canvas canvas = new Canvas(renderSurface); 

    Paint paint = new Paint(); 
    paint.setTextSize(10); 
    if(paint.measureText(nativeName)>canvas.getWidth()) 
     nativeName = getClippedString(paint,nativeName,canvas.getWidth()); 

    canvas.drawText(nativeName,33,0, paint); 

    return renderSurface; 

Répondre

4

Vous devez créer un autre Bitmap (à moins que le Bitmap d'origine est mutable), puis créer un canevas pour dessiner sur cette Bitmap. Enfin, appelez drawText() sur le canevas. Pour savoir où ellipsiser votre texte, vous pouvez utiliser les méthodes de mesure du texte de la classe Paint.

+0

Pourriez-vous me montrer dans un extrait comment obtenir une instance de la classe Paint? – rantravee

+0

Oh!, Question idiote de ma part, veuillez l'ignorer. Cependant j'obtiens l'erreur suivante que je ne peux pas résoudre et je ne sais pas ce que cela signifie: "bitmap immuable passé au constructeur de toile" – rantravee

+0

Lire la documentation Bitmap. Vous devez utiliser l'une des méthodes copy *() ou create *() qui renvoie un bitmap * mutable *. Seules les bitmaps modifiables peuvent être utilisées. –