diff --git a/java/res/layout/emoji_palettes_view.xml b/java/res/layout/emoji_palettes_view.xml
index 8cff503..c0c346e 100644
--- a/java/res/layout/emoji_palettes_view.xml
+++ b/java/res/layout/emoji_palettes_view.xml
@@ -70,7 +70,6 @@
             android:layout_width="0dip"
             android:layout_weight="12.5"
             android:layout_height="match_parent"
-            android:background="@color/emoji_key_background_color"
             android:src="@drawable/sym_keyboard_delete_holo_dark"
             android:contentDescription="@string/spoken_description_delete" />
     </LinearLayout>
diff --git a/java/res/values/colors.xml b/java/res/values/colors.xml
index 674f77d..12cb71f 100644
--- a/java/res/values/colors.xml
+++ b/java/res/values/colors.xml
@@ -61,8 +61,4 @@
     <color name="setup_welcome_video_margin_color">#FFCCCCCC</color>
     <color name="emoji_category_page_id_background_holo">#FF000000</color>
     <color name="emoji_category_page_id_foreground_holo">#80FFFFFF</color>
-
-    <!-- TODO: Color which should be included in the theme -->
-    <color name="emoji_key_background_color">#00000000</color>
-    <color name="emoji_key_pressed_background_color">#30FFFFFF</color>
 </resources>
diff --git a/java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesView.java b/java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesView.java
index 3813c57..8e45957 100644
--- a/java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesView.java
+++ b/java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesView.java
@@ -416,14 +416,11 @@
 
     private static class DeleteKeyOnTouchListener implements OnTouchListener {
         static final long MAX_REPEAT_COUNT_TIME = TimeUnit.SECONDS.toMillis(30);
-        final int mDeleteKeyPressedBackgroundColor;
         final long mKeyRepeatStartTimeout;
         final long mKeyRepeatInterval;
 
         public DeleteKeyOnTouchListener(Context context) {
             final Resources res = context.getResources();
-            mDeleteKeyPressedBackgroundColor =
-                    res.getColor(R.color.emoji_key_pressed_background_color);
             mKeyRepeatStartTimeout = res.getInteger(R.integer.config_key_repeat_start_timeout);
             mKeyRepeatInterval = res.getInteger(R.integer.config_key_repeat_interval);
             mTimer = new CountDownTimer(MAX_REPEAT_COUNT_TIME, mKeyRepeatInterval) {
@@ -500,7 +497,7 @@
             mTimer.cancel();
             mRepeatCount = 0;
             handleKeyDown();
-            v.setBackgroundColor(mDeleteKeyPressedBackgroundColor);
+            v.setPressed(true /* pressed */);
             mState = KEY_REPEAT_STATE_KEY_DOWN;
             mTimer.start();
         }
@@ -510,7 +507,7 @@
             if (mState == KEY_REPEAT_STATE_KEY_DOWN) {
                 handleKeyUp();
             }
-            v.setBackgroundColor(Color.TRANSPARENT);
+            v.setPressed(false /* pressed */);
             mState = KEY_REPEAT_STATE_INITIALIZED;
         }
 
