From 72fb8e05f9cd236952e9411330efb6537ac34d49 Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" Date: Tue, 27 Mar 2012 17:47:33 +0900 Subject: [PATCH] Use FontMetrics.top and padding to place keyHintLetter Bug: 6225638 Change-Id: Ia3680d84bd1e7ccbdb87aedca106641c6d270677 --- java/src/com/android/inputmethod/keyboard/KeyboardView.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java index 24eb7592b..c1d11a086 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java @@ -124,6 +124,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy { /** The canvas for the above mutable keyboard bitmap */ private Canvas mCanvas; private final Paint mPaint = new Paint(); + private final Paint.FontMetrics mFontMetrics = new Paint.FontMetrics(); // This map caches key label text height in pixel as value and key label text size as map key. private static final HashMap sTextHeightCache = new HashMap(); @@ -659,13 +660,14 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy { // The hint label is placed at top-right corner of the key. Used mainly on tablet. hintX = keyWidth - params.mKeyShiftedLetterHintPadding - getCharWidth(KEY_LABEL_REFERENCE_CHAR, paint) / 2; - hintY = -paint.ascent(); + paint.getFontMetrics(mFontMetrics); + hintY = -mFontMetrics.top + params.mKeyShiftedLetterHintPadding; paint.setTextAlign(Align.CENTER); } else { // key.hasHintLetter() // The hint label is placed at top-right corner of the key. Used mainly on phone. hintX = keyWidth - params.mKeyHintLetterPadding - getCharWidth(KEY_NUMERIC_HINT_LABEL_REFERENCE_CHAR, paint) / 2; - hintY = -paint.ascent(); + hintY = -paint.ascent() + params.mKeyHintLetterPadding; paint.setTextAlign(Align.CENTER); } canvas.drawText(hint, 0, hint.length(), hintX, hintY, paint);