Android lienzo drawText y posición del texto
Estoy usando un lienzo para crear un dibujo con algún fondo y texto. El dibujable se utiliza como un compuesto dibujable dentro de un EditText.
El texto se dibuja mediante drawText () en el lienzo, pero en algunos casos tengo un problema con la posición y del texto dibujado. En esos casos, se cortan partes de algunos caracteres (ver enlaces de imágenes).
Caracteres sin problema de posicionamiento:
http://i50.tinypic.com/zkpu1l.jpg
Caracteres con problemas de posicionamiento, el texto contiene 'g', 'j', 'q', etc .:
http://i45.tinypic.com/vrqxja.jpg
Puede encontrar un fragmento de código para reproducir el problema a continuación.
¿Sabe algún experto cómo determinar la compensación adecuada para la posición y?
public void writeTestBitmap(String text, String fileName) {
// font size
float fontSize = new EditText(this.getContext()).getTextSize();
fontSize+=fontSize*0.2f;
// paint to write text with
Paint paint = new Paint();
paint.setStyle(Style.FILL);
paint.setColor(Color.DKGRAY);
paint.setAntiAlias(true);
paint.setTypeface(Typeface.SERIF);
paint.setTextSize((int)fontSize);
// min. rect of text
Rect textBounds = new Rect();
paint.getTextBounds(text, 0, text.length(), textBounds);
// create bitmap for text
Bitmap bm = Bitmap.createBitmap(textBounds.width(), textBounds.height(), Bitmap.Config.ARGB_8888);
// canvas
Canvas canvas = new Canvas(bm);
canvas.drawARGB(255, 0, 255, 0);// for visualization
// y = ?
canvas.drawText(text, 0, textBounds.height(), paint);
try {
FileOutputStream out = new FileOutputStream(fileName);
bm.compress(Bitmap.CompressFormat.JPEG, 100, out);
} catch (Exception e) {
e.printStackTrace();
}
}