2012-04-14 23 views
7

Quiero dibujar una cadena que diga "stackoverflow" en una vista circular, como la imagen de abajo, alguien puede sugerir cómo hacerlo. Y también necesito hacer clic en evento en cada personaje.¿Dibujar texto en vista circular?

IMAGE

+0

[echar un vistazo a esto, se ha pedido antes] (http: // stackoverflow. com/a/8343851/420015) – adneal

+0

fue para dibujar un círculo alrededor del texto pero no para dibujar texto de manera circular –

+0

[Está bien, pero se ha preguntado antes. Este enlace es correcto] (http://stackoverflow.com/a/8337972/420015) – adneal

Respuesta

10

Necesita hacer una vista personalizada para esto. en el método onDraw, crea un objeto de ruta, agrega un círculo a ese objeto y luego usa el objeto Canvas para dibujar texto en esa ruta.

Path path = new Path(); 
path.addCircle(x, y, radius, Path.Direction.CW); 
myCanvas.drawTextOnPath(myText, path, offset, 0, myPaint); 

Editar:

uso esta línea de código cuando se utiliza el OS 4.0 y anteriores:

setLayerType(View.LAYER_TYPE_SOFTWARE, null); 
+0

, pero ¿qué pasa con el evento clic en él –

+0

puedo tener evento de clic en él –

+0

alguna idea sobre el evento click en él? –

0

Tome un vistazo a ambos Path.addCircleCanvas.drawTextOnPath y API.