diff --git a/java/res/values/config.xml b/java/res/values/config.xml
index af145a6..456d9ad 100644
--- a/java/res/values/config.xml
+++ b/java/res/values/config.xml
@@ -27,6 +27,8 @@
     <integer name="config_mini_keyboard_fadeout_anim_time">100</integer>
     <integer name="config_delay_before_key_repeat_start">400</integer>
     <integer name="config_key_repeat_interval">50</integer>
+    <integer name="config_keyboard_grid_width">32</integer>
+    <integer name="config_keyboard_grid_height">16</integer>
     <integer name="config_long_press_key_timeout">400</integer>
     <integer name="config_long_press_shift_key_timeout">1200</integer>
     <integer name="config_multi_tap_key_timeout">800</integer>
diff --git a/java/src/com/android/inputmethod/latin/BaseKeyboard.java b/java/src/com/android/inputmethod/latin/BaseKeyboard.java
index cb41ad0..266300e 100644
--- a/java/src/com/android/inputmethod/latin/BaseKeyboard.java
+++ b/java/src/com/android/inputmethod/latin/BaseKeyboard.java
@@ -109,9 +109,9 @@
 
     // Variables for pre-computing nearest keys.
 
-    private static final int GRID_WIDTH = 10;
-    private static final int GRID_HEIGHT = 5;
-    private static final int GRID_SIZE = GRID_WIDTH * GRID_HEIGHT;
+    private final int GRID_WIDTH;
+    private final int GRID_HEIGHT;
+    private final int GRID_SIZE;
     private int mCellWidth;
     private int mCellHeight;
     private int[][] mGridNeighbors;
@@ -466,6 +466,11 @@
      * @param height sets height of keyboard
      */
     public BaseKeyboard(Context context, int xmlLayoutResId, int modeId, int width, int height) {
+        Resources res = context.getResources();
+        GRID_WIDTH = res.getInteger(R.integer.config_keyboard_grid_width);
+        GRID_HEIGHT = res.getInteger(R.integer.config_keyboard_grid_height);
+        GRID_SIZE = GRID_WIDTH * GRID_HEIGHT;
+
         mDisplayWidth = width;
         mDisplayHeight = height;
 
@@ -485,17 +490,9 @@
      * @param modeId keyboard mode identifier
      */
     public BaseKeyboard(Context context, int xmlLayoutResId, int modeId) {
-        DisplayMetrics dm = context.getResources().getDisplayMetrics();
-        mDisplayWidth = dm.widthPixels;
-        mDisplayHeight = dm.heightPixels;
-        //Log.v(TAG, "keyboard's display metrics:" + dm);
-
-        mDefaultHorizontalGap = 0;
-        setKeyWidth(mDisplayWidth / 10);
-        mDefaultVerticalGap = 0;
-        mDefaultHeight = mDefaultWidth;
-        mKeyboardMode = modeId;
-        loadKeyboard(context, xmlLayoutResId);
+        this(context, xmlLayoutResId, modeId,
+                context.getResources().getDisplayMetrics().widthPixels,
+                context.getResources().getDisplayMetrics().heightPixels);
     }
 
     /**
