2011-03-09 20 views
16

Cómo dibujar TextView en Canvas en android ..?Cómo dibujar TextView en Canvas en android ..?

Tenemos Canvas.DrawBitmap(), Canvas.drawText(). ¿Tenemos algún método en Canvas que tome TextView como parámetro o cualquier otro método para mostrar TextView en Canvas?

En realidad, tengo un alfabeto en TextView y tengo que hacer un dibujo en ese alfabeto que está en el lienzo.

Para sugerir cualquier cosa .... Gracias por su cooperación

Respuesta

42

No puede dibujar un Textview directamente, pero puede colocarlo en un diseño y dibujar el diseño. Algo como esto:

LinearLayout layout = new LinearLayout(context); 

TextView textView = new TextView(context); 
textView.setVisibility(View.VISIBLE); 
textView.setText("Hello world"); 
layout.addView(textView); 

layout.measure(canvas.getWidth(), canvas.getHeight()); 
layout.layout(0, 0, canvas.getWidth(), canvas.getHeight()); 

// To place the text view somewhere specific: 
//canvas.translate(0, 0); 

layout.draw(canvas); 
+2

sobre la llamada a measure(), tuve más éxito al usar MeasureSpec.makeMeasureSpec (canvas.getWidth(), MeasureSpec.EXACTLY) en lugar de canvas.getWidth() (y lo mismo para la altura). –

+0

@emidander muchas gracias amigo – Palanivelraghul

+0

¿es posible hacer clic en TextView? Estoy agregando un OnClickListener pero no parece estar funcionando. – user3667569

0

Necesita crear una clase que extienda Textview. Después de eso, anula el método de Draw. Este método le permite dibujar su textview de la forma que le guste