Foros del Web » Programando para Internet » Android »

Canvas texto dentro de un rect

Estas en el tema de Canvas texto dentro de un rect en el foro de Android en Foros del Web. Estoy intentando dibujar un número en un Rect "simulado", en principio este Rect lo estoy dibujando por hacerme una idea de como queda y si ...
  #1 (permalink)  
Antiguo 19/08/2015, 02:06
 
Fecha de Ingreso: octubre-2009
Mensajes: 223
Antigüedad: 11 años, 4 meses
Puntos: 2
Canvas texto dentro de un rect

Estoy intentando dibujar un número en un Rect "simulado", en principio este Rect lo estoy dibujando por hacerme una idea de como queda y si el número lo cubre entero, pero mi idea final es eliminarlo para que salga solo el número.

Este Rect si lo dibujo aparece perfectamente, pero cuando intento dibujar el número dentro no lo consigo. He probado con getBounds y measureText pero no hay manera, creo que no pillo bien el concepto de los objetos paints porque no consigo que me funcione.

La verdad que no se con cual de las 2 formas de adecúa más a lo que quiero hacer, he visto y probado ejemplos que hay en internet pero no hay manera.

He adaptado el código que encontré por internet y el que más se usa, quedando así.

mpaint= new Paint();
mpaint.setColor(Color.RED);
mpaint.setStyle(Style.FILL);
paint2= new Paint();
paint2.setColor(Color.GREEN);
paint2.setTextSize(50); //set text size
String s = "0",

@Override
protected void onDraw(Canvas canvas) {
int x, y = 300; // Vertice superior izquierdo del Rect
FontMetrics fm = new FontMetrics();
paint2.setTextAlign(Paint.Align.CENTER);
paint2.getFontMetrics(fm);
canvas.drawRect( x-paint2.measureText(s)/2, y - paint2.getTextSize(), x + paint2.measureText(s)/2, y, mpaint);
canvas.drawText(s, x, y ,paint2);
}

Lo que no entiendo de este código es lo siguiente, cuando uso el objecto de FontMetric como sabe que tamaño tiene mi RECT?? como va a calcular un tamaño cuando no sabe donde quiero ponerlo, creo que de alguna manera debería decirle en que Rect quiero meter el texto, una vez ahí que calcule el tamaño.

Gracias anticipadas y a ver si alguien me aclara esta duda

Etiquetas: canvas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 14:43.