2011-11-23 10 views
5

tengo algo de código en la que estoy dibujando mi texto en mapa de bits (lienzo)cómo dibujar texto con color de fondo usando la lona

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

Por favor, dime, es posible extraer este texto en ruta (textPath) con el color de fondo?

es la función completa de dibujo único texto

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); 

     } 

Con esta función Estoy dibujando texto en mi lienzo. Entonces, ¿cómo modificar esta función para dibujar este texto con el fondo?

+0

Usted la prueba de la media debe tener un color o el lienzo debe tener un color? –

+0

mmmm lienzo tienen mapa de bits (imagen), en esta imagen estoy dibujando texto usando drawTextOnPath (porque necesito esta función para dibujar) ... quiero dibujar este texto (color de texto verde por ejemplo) con fondo solo para este texto (ejemplo: negro) – Peter

+0

¿No puedes dibujar el trazado con una línea del color de fondo deseado y luego dibujar el texto sobre él? Esto puede requerir un poco de configuración del camino. –

Respuesta

18

Lo más probable es que se necesiten dos pasos aquí. dibujaría una línea a lo largo del trazado primero con color para el fondo y luego dibujaría el texto como se indica. Establezca el grosor de la línea con un objeto de pintura. Además, cambiar el estilo de la pintura puede ayudar con el efecto. intente FILL, STROKE o FILL_AND_STROKE para diferentes efectos.

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

muestra añadida para dibujar un camino (rectángulo) con el rojo:

  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); 

después Dibujar texto a lo largo mismo camino (de color azul):

 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

Cuestiones relacionadas