diff options
author | 2011-05-12 23:49:19 +0900 | |
---|---|---|
committer | 2011-05-13 18:44:57 +0900 | |
commit | d157834345f2817cb80db3fdb7e6f22efa92f70c (patch) | |
tree | c854a0e281370c467a7e186724bcb75c1abc5296 /java/src/com/android/inputmethod | |
parent | 13e6725a78699d04375efc4401d5931c311029b8 (diff) | |
download | latinime-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.java | 31 |
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 { |