2011-11-23 10 views
5

Ho qualche codice in cui sto disegnando il mio testo su bitmap (tele)come disegnare il testo con il colore di sfondo utilizzando canvas

canvas.drawTextOnPath(Text, textPath[count], gipa, -10, text); 

Ti prego, dimmi, è possibile disegnare questo testo in percorso (textPath) con il colore di sfondo?

è funzione completa per il disegno unico testo

public void drawText(float x,float y ,String Text,Canvas canvas,Paint paint1 ,int count) 
     { 
      float xren =text.measureText(Text.trim()); 

      canvas.drawTextOnPath(Text, textPath[count], gipa, -10, text); 

     } 

Usando questa funzione sto disegnando testo sulla mia tela. quindi come modificare questa funzione per disegnare questo testo con lo sfondo?

+0

È la prova media dovrebbe avere un colore o la tela dovrebbe avere un colore? –

+0

mmmm canvas ha bitmap (immagine), su questa immagine im disegno del testo usando drawTextOnPath (perché ho bisogno di questa funzione per disegnare) .. voglio disegnare questo testo (colore verde per esempio) con sfondo solo per questo testo (esempio: nero) – Peter

+0

Non puoi semplicemente tracciare il percorso con una linea del colore di sfondo desiderato e disegnare il testo su di esso? Questo potrebbe richiedere di isolare un po 'il percorso. –

risposta

18

Molto probabilmente sono necessari due passaggi qui. disegnerai una linea lungo il percorso prima con il colore per lo sfondo e poi disegnerai il testo come indicato. Imposta lo spessore della linea con un oggetto pittura. Inoltre, cambiare lo stile della vernice può aiutare con l'effetto. prova FILL, STROKE o FILL_AND_STROKE per effetti diversi.

mpaint.setStyle(Paint.Style.STROKE); 
mpaint.setStrokeWidth(strokeWidth); 

Aggiunto di esempio per disegnare un percorso (rettangolo) con il colore rosso:

  Paint mPaint = new Paint(); 
     mPaint.setColor(Color.RED); 
     Path mPath = new Path(); 
     RectF mRectF = new RectF(20, 20, 240, 240); 
     mPath.addRect(mRectF, Path.Direction.CCW); 
     mPaint.setStrokeWidth(20); 
     mPaint.setStyle(Paint.Style.STROKE); 
     canvas.drawPath(mPath, mPaint); 

quindi disegnare testo lungo lo stesso percorso (colore blu):

 mPaint.setColor(Color.BLUE); 
     mPaint.setStrokeWidth(0); 
     mPaint.setStyle(Paint.Style.FILL); 
     mPaint.setTextSize(20); 
     canvas.drawTextOnPath("Draw the text, with origin at (x,y), using the specified paint, along the specified path.", mPath, 0, 5, mPaint); 

results

Problemi correlati