Loading java/src/com/android/inputmethod/keyboard/KeyboardView.java +9 −2 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.graphics.Paint.Align; import android.graphics.PorterDuff; import android.graphics.Rect; import android.graphics.Region; import android.graphics.Typeface; import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.view.View; Loading Loading @@ -445,6 +446,8 @@ public class KeyboardView extends View { if (hintLabel != null) { paint.setTextSize(key.selectHintTextSize(params)); paint.setColor(key.selectHintTextColor(params)); // TODO: Should add a way to specify type face for hint letters paint.setTypeface(Typeface.DEFAULT_BOLD); blendAlpha(paint, params.mAnimAlpha); final float hintX, hintY; if (key.hasHintLabel()) { Loading @@ -465,8 +468,12 @@ public class KeyboardView extends View { paint.setTextAlign(Align.CENTER); } else { // key.hasHintLetter() // The hint letter is placed at top-right corner of the key. Used mainly on phone. final float keyNumericHintLabelReferenceCharWidth = TypefaceUtils.getCharWidth(KEY_NUMERIC_HINT_LABEL_REFERENCE_CHAR, paint); final float keyHintLabelStringWidth = TypefaceUtils.getStringWidth(hintLabel, paint); hintX = keyWidth - mKeyHintLetterPadding - TypefaceUtils.getCharWidth(KEY_NUMERIC_HINT_LABEL_REFERENCE_CHAR, paint) - Math.max(keyNumericHintLabelReferenceCharWidth, keyHintLabelStringWidth) / 2.0f; hintY = -paint.ascent(); paint.setTextAlign(Align.CENTER); Loading java/src/com/android/inputmethod/latin/utils/TypefaceUtils.java +5 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,11 @@ public final class TypefaceUtils { } } public static float getStringWidth(final String string, final Paint paint) { paint.getTextBounds(string, 0, string.length(), sTextWidthBounds); return sTextWidthBounds.width(); } private static int getCharGeometryCacheKey(final char referenceChar, final Paint paint) { final int labelSize = (int)paint.getTextSize(); final Typeface face = paint.getTypeface(); Loading Loading
java/src/com/android/inputmethod/keyboard/KeyboardView.java +9 −2 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.graphics.Paint.Align; import android.graphics.PorterDuff; import android.graphics.Rect; import android.graphics.Region; import android.graphics.Typeface; import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.view.View; Loading Loading @@ -445,6 +446,8 @@ public class KeyboardView extends View { if (hintLabel != null) { paint.setTextSize(key.selectHintTextSize(params)); paint.setColor(key.selectHintTextColor(params)); // TODO: Should add a way to specify type face for hint letters paint.setTypeface(Typeface.DEFAULT_BOLD); blendAlpha(paint, params.mAnimAlpha); final float hintX, hintY; if (key.hasHintLabel()) { Loading @@ -465,8 +468,12 @@ public class KeyboardView extends View { paint.setTextAlign(Align.CENTER); } else { // key.hasHintLetter() // The hint letter is placed at top-right corner of the key. Used mainly on phone. final float keyNumericHintLabelReferenceCharWidth = TypefaceUtils.getCharWidth(KEY_NUMERIC_HINT_LABEL_REFERENCE_CHAR, paint); final float keyHintLabelStringWidth = TypefaceUtils.getStringWidth(hintLabel, paint); hintX = keyWidth - mKeyHintLetterPadding - TypefaceUtils.getCharWidth(KEY_NUMERIC_HINT_LABEL_REFERENCE_CHAR, paint) - Math.max(keyNumericHintLabelReferenceCharWidth, keyHintLabelStringWidth) / 2.0f; hintY = -paint.ascent(); paint.setTextAlign(Align.CENTER); Loading
java/src/com/android/inputmethod/latin/utils/TypefaceUtils.java +5 −0 Original line number Diff line number Diff line Loading @@ -66,6 +66,11 @@ public final class TypefaceUtils { } } public static float getStringWidth(final String string, final Paint paint) { paint.getTextBounds(string, 0, string.length(), sTextWidthBounds); return sTextWidthBounds.width(); } private static int getCharGeometryCacheKey(final char referenceChar, final Paint paint) { final int labelSize = (int)paint.getTextSize(); final Typeface face = paint.getTypeface(); Loading