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();
   }
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta