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