Rysowanie tekstu na płótnie w systemie Android

Używam kanwy, aby utworzyć Drawable z pewnym tłem i tekstem. Drawable jest używany jako związek, który można wyciągnąć wewnątrz EditText.

Tekst jest rysowany za pomocą drawText () na płótnie, ale w niektórych przypadkach mam problem z położeniem y narysowanego tekstu. W takich przypadkach części niektórych znaków są odcinane (patrz linki do obrazów).

Znaki bez problemu z pozycjonowaniem:

http://i50.tinypic.com/zkpu1l.jpg

Znaki z problemem pozycjonowania, tekst zawiera „g”, „j”, „q” itd .:

http://i45.tinypic.com/vrqxja.jpg

Możesz znaleźć fragment kodu, aby odtworzyć poniższy problem.

Czy jakiś ekspert wie, jak określić właściwe przesunięcie dla pozycji 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();
   }
}

questionAnswers(2)

yourAnswerToTheQuestion