diff options
author | 2011-07-01 22:53:42 +0900 | |
---|---|---|
committer | 2011-07-01 23:02:47 +0900 | |
commit | 17a1676e7266527eb675525117e24d591d60771e (patch) | |
tree | eb88569078afe14f43103717866a126d6c6efd95 /java/src | |
parent | 7f3e5979d7b91b1b614bd377eac2d1d43f5d1914 (diff) | |
download | latinime-17a1676e7266527eb675525117e24d591d60771e.tar.gz latinime-17a1676e7266527eb675525117e24d591d60771e.tar.xz latinime-17a1676e7266527eb675525117e24d591d60771e.zip |
Add top padding to mini keyboard
Because Key only has bottom padding, to make mini keyboard vertically
symmetric and looks nicer, we should add mini keyboard top padding
that equals to Key bottom padding (a.k.a. vertical gap).
Change-Id: Icceb687d50edfa48e0f0830a60a1e230836c982f
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/keyboard/internal/MiniKeyboardBuilder.java | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/internal/MiniKeyboardBuilder.java b/java/src/com/android/inputmethod/keyboard/internal/MiniKeyboardBuilder.java index 1e67eec70..0507554a3 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/MiniKeyboardBuilder.java +++ b/java/src/com/android/inputmethod/keyboard/internal/MiniKeyboardBuilder.java @@ -43,6 +43,7 @@ public class MiniKeyboardBuilder { public final int mNumColumns; public final int mLeftKeys; public final int mRightKeys; // includes default key. + public final int mTopPadding; /** * The object holding mini keyboard layout parameters. @@ -53,14 +54,17 @@ public class MiniKeyboardBuilder { * @param rowHeight mini keyboard row height in pixel, including vertical gap. * @param coordXInParent coordinate x of the popup key in parent keyboard. * @param parentKeyboardWidth parent keyboard width in pixel. + * @param topPadding top padding of mini keyboard, maybe equals to vertical gap of the + * parent keyboard. */ public MiniKeyboardLayoutParams(int numKeys, int maxColumns, int keyWidth, int rowHeight, - int coordXInParent, int parentKeyboardWidth) { + int coordXInParent, int parentKeyboardWidth, int topPadding) { if (parentKeyboardWidth / keyWidth < maxColumns) throw new IllegalArgumentException("Keyboard is too small to hold mini keyboard: " + parentKeyboardWidth + " " + keyWidth + " " + maxColumns); mKeyWidth = keyWidth; mRowHeight = rowHeight; + mTopPadding = topPadding; final int numRows = (numKeys + maxColumns - 1) / maxColumns; mNumRows = numRows; @@ -170,7 +174,7 @@ public class MiniKeyboardBuilder { } public int getY(int row) { - return (mNumRows - 1 - row) * mRowHeight; + return (mNumRows - 1 - row) * mRowHeight + mTopPadding; } public int getRowFlags(int row) { @@ -183,6 +187,14 @@ public class MiniKeyboardBuilder { private boolean isTopRow(int rowCount) { return rowCount == mNumRows - 1; } + + public int getKeyboardHeight() { + return mNumRows * mRowHeight + mTopPadding; + } + + public int getKeyboardWidth() { + return mNumColumns * mKeyWidth; + } } public MiniKeyboardBuilder(KeyboardView view, int layoutTemplateResId, Key parentKey, @@ -199,12 +211,12 @@ public class MiniKeyboardBuilder { mPopupCharacters.length, parentKey.mMaxPopupColumn, keyWidth, parentKeyboard.getRowHeight(), parentKey.mX + (parentKey.mWidth + parentKey.mGap) / 2 - keyWidth / 2, - view.getMeasuredWidth()); + view.getMeasuredWidth(), keyboard.getVerticalGap()); mParams = params; keyboard.setRowHeight(params.mRowHeight); - keyboard.setHeight(params.mNumRows * params.mRowHeight); - keyboard.setMinWidth(params.mNumColumns * params.mKeyWidth); + keyboard.setHeight(params.getKeyboardHeight()); + keyboard.setMinWidth(params.getKeyboardWidth()); keyboard.setDefaultCoordX(params.getDefaultKeyCoordX() + params.mKeyWidth / 2); } |