summaryrefslogtreecommitdiff
path: root/java/src/com/android/inputmethod/keyboard/KeyboardView.java
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2014-05-15 17:28:54 +0900
committerTadashi G. Takaoka <takaoka@google.com>2014-05-15 18:40:16 +0900
commit41808192d3a64d3e823e13ace27e3ce80b1c5bda (patch)
treeac9b56963e5943348f41c4c3f5ae4e5d433a71b9 /java/src/com/android/inputmethod/keyboard/KeyboardView.java
parentaf66ff7610b0a3c9e1d44d0aa0b1bafbcd9de4e0 (diff)
Support 9-patch drawable for spacebar icon
Bug: 14419121 Change-Id: I901ea2a5bfae870b3aae8fea3bc38d999b2354b8
Diffstat (limited to 'java/src/com/android/inputmethod/keyboard/KeyboardView.java')
-rw-r--r--java/src/com/android/inputmethod/keyboard/KeyboardView.java18
1 files changed, 14 insertions, 4 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
index a6eac4cd7..edfc5fded 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
@@ -28,6 +28,7 @@ import android.graphics.Rect;
import android.graphics.Region;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
+import android.graphics.drawable.NinePatchDrawable;
import android.util.AttributeSet;
import android.view.View;
@@ -49,6 +50,7 @@ import java.util.HashSet;
* @attr ref R.styleable#KeyboardView_keyBackground
* @attr ref R.styleable#KeyboardView_functionalKeyBackground
* @attr ref R.styleable#KeyboardView_spacebarBackground
+ * @attr ref R.styleable#KeyboardView_spacebarIconWidthRatio
* @attr ref R.styleable#KeyboardView_keyLabelHorizontalPadding
* @attr ref R.styleable#KeyboardView_keyHintLetterPadding
* @attr ref R.styleable#KeyboardView_keyPopupHintLetterPadding
@@ -85,6 +87,7 @@ public class KeyboardView extends View {
private final Drawable mKeyBackground;
private final Drawable mFunctionalKeyBackground;
private final Drawable mSpacebarBackground;
+ private final float mSpacebarIconWidthRatio;
private final Rect mKeyBackgroundPadding = new Rect();
private static final float KET_TEXT_SHADOW_RADIUS_DISABLED = -1.0f;
@@ -135,8 +138,9 @@ public class KeyboardView extends View {
: mKeyBackground;
final Drawable spacebarBackground = keyboardViewAttr.getDrawable(
R.styleable.KeyboardView_spacebarBackground);
- mSpacebarBackground = (spacebarBackground != null) ? spacebarBackground
- : mKeyBackground;
+ mSpacebarBackground = (spacebarBackground != null) ? spacebarBackground : mKeyBackground;
+ mSpacebarIconWidthRatio = keyboardViewAttr.getFloat(
+ R.styleable.KeyboardView_spacebarIconWidthRatio, 1.0f);
mKeyLabelHorizontalPadding = keyboardViewAttr.getDimensionPixelOffset(
R.styleable.KeyboardView_keyLabelHorizontalPadding, 0);
mKeyHintLetterPadding = keyboardViewAttr.getDimension(
@@ -513,10 +517,16 @@ public class KeyboardView extends View {
// Draw key icon.
if (label == null && icon != null) {
- final int iconWidth = Math.min(icon.getIntrinsicWidth(), keyWidth);
+ final int iconWidth;
+ if (key.getCode() == Constants.CODE_SPACE && icon instanceof NinePatchDrawable) {
+ iconWidth = (int)(keyWidth * mSpacebarIconWidthRatio);
+ } else {
+ iconWidth = Math.min(icon.getIntrinsicWidth(), keyWidth);
+ }
final int iconHeight = icon.getIntrinsicHeight();
final int iconX, alignX;
- final int iconY = (keyHeight - iconHeight) / 2;
+ final int iconY = key.isAlignButtom() ? keyHeight - iconHeight
+ : (keyHeight - iconHeight) / 2;
if (key.isAlignLeft()) {
iconX = mKeyLabelHorizontalPadding;
alignX = iconX;