aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2011-05-12 23:49:19 +0900
committerTadashi G. Takaoka <takaoka@google.com>2011-05-13 18:44:57 +0900
commitd157834345f2817cb80db3fdb7e6f22efa92f70c (patch)
treec854a0e281370c467a7e186724bcb75c1abc5296 /java/src/com/android/inputmethod
parent13e6725a78699d04375efc4401d5931c311029b8 (diff)
downloadlatinime-d157834345f2817cb80db3fdb7e6f22efa92f70c.tar.gz
latinime-d157834345f2817cb80db3fdb7e6f22efa92f70c.tar.xz
latinime-d157834345f2817cb80db3fdb7e6f22efa92f70c.zip
Auto text sizing using fraction of key height
Bug: 4411676 Change-Id: I8f289dcebe577d277fe2ad6a8331d59f735cbada
Diffstat (limited to 'java/src/com/android/inputmethod')
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardView.java31
1 files changed, 24 insertions, 7 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
index bbda4009f..1ea1436d3 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
@@ -86,10 +86,12 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
private static final int HINT_ICON_VERTICAL_ADJUSTMENT_PIXEL = -1;
// XML attribute
+ private float mKeyLetterRatio;
private int mKeyLetterSize;
private int mKeyTextColor;
private int mKeyTextColorDisabled;
private Typeface mKeyLetterStyle = Typeface.DEFAULT;
+ private float mLabelTextRatio;
private int mLabelTextSize;
private int mColorScheme = COLOR_SCHEME_WHITE;
private int mShadowColor;
@@ -108,7 +110,8 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
// Key preview
private boolean mInForeground;
private TextView mPreviewText;
- private int mPreviewTextSizeLarge;
+ private float mPreviewTextRatio;
+ private int mPreviewTextSize;
private boolean mShowKeyPreview = true;
private int mKeyPreviewDisplayedY;
private final int mDelayBeforePreview;
@@ -327,8 +330,8 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
case R.styleable.KeyboardView_keyPreviewHeight:
mPreviewHeight = a.getDimensionPixelSize(attr, 80);
break;
- case R.styleable.KeyboardView_keyLetterSize:
- mKeyLetterSize = a.getDimensionPixelSize(attr, 18);
+ case R.styleable.KeyboardView_keyLetterRatio:
+ mKeyLetterRatio = getRatio(a, attr);
break;
case R.styleable.KeyboardView_keyTextColor:
mKeyTextColor = a.getColor(attr, 0xFF000000);
@@ -336,8 +339,8 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
case R.styleable.KeyboardView_keyTextColorDisabled:
mKeyTextColorDisabled = a.getColor(attr, 0xFF000000);
break;
- case R.styleable.KeyboardView_labelTextSize:
- mLabelTextSize = a.getDimensionPixelSize(attr, 14);
+ case R.styleable.KeyboardView_labelTextRatio:
+ mLabelTextRatio = getRatio(a, attr);
break;
case R.styleable.KeyboardView_popupLayout:
mPopupLayout = a.getResourceId(attr, 0);
@@ -365,7 +368,7 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
if (previewLayout != 0) {
mPreviewText = (TextView) LayoutInflater.from(context).inflate(previewLayout, null);
- mPreviewTextSizeLarge = (int) res.getDimension(R.dimen.key_preview_text_size_large);
+ mPreviewTextRatio = getRatio(res, R.fraction.key_preview_text_ratio);
} else {
mShowKeyPreview = false;
}
@@ -460,6 +463,16 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
mKeyRepeatInterval = res.getInteger(R.integer.config_key_repeat_interval);
}
+ // Read fraction value in TypedArray as float.
+ private static float getRatio(TypedArray a, int index) {
+ return a.getFraction(index, 1000, 1000, 1) / 1000.0f;
+ }
+
+ // Read fraction value in resource as float.
+ private static float getRatio(Resources res, int id) {
+ return res.getFraction(id, 1000, 1000) / 1000.0f;
+ }
+
public void startIgnoringDoubleTap() {
if (ENABLE_CAPSLOCK_BY_DOUBLETAP)
mHandler.startIgnoringDoubleTap();
@@ -506,6 +519,10 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
invalidateAllKeys();
mKeyDetector.setProximityThreshold(keyboard.getMostCommonKeyWidth());
mPopupPanelCache.clear();
+ final int keyHeight = keyboard.getRowHeight() - keyboard.getVerticalGap();
+ mKeyLetterSize = (int)(keyHeight * mKeyLetterRatio);
+ mLabelTextSize = (int)(keyHeight * mLabelTextRatio);
+ mPreviewTextSize = (int)(keyHeight * mPreviewTextRatio);
}
/**
@@ -938,7 +955,7 @@ public class KeyboardView extends View implements PointerTracker.UIProxy {
previewText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mKeyLetterSize);
previewText.setTypeface(Typeface.DEFAULT_BOLD);
} else {
- previewText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mPreviewTextSizeLarge);
+ previewText.setTextSize(TypedValue.COMPLEX_UNIT_PX, mPreviewTextSize);
previewText.setTypeface(mKeyLetterStyle);
}
} else {