如何在自定义Android键盘中更改KeyboardView类中键的颜色?

时间:2013-08-17 07:11:26

标签: android android-softkeyboard

我正在开发自定义键盘应用程序。我需要在KeyboardView类中为键或背景颜色设置不同的主题,并在SoftKeyboard中的onCreateInputView()中获取键颜色,扩展InputMethodService类。

但是我没有按照键码获取如何获取特定键,因此我可以更改特定键的颜色或背景。

1 个答案:

答案 0 :(得分:9)

在任何不同的输入布局上使用android:keyBackground =“..”

示例:

input.xml中:

<com.example.KeyboardView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/keyboard"
        android:layout_alignParentBottom="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:keyBackground="@drawable/blue_key"
        />

input1.xml:

<com.example.KeyboardView
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/keyboard"
            android:layout_alignParentBottom="true"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:keyBackground="@drawable/red_key"
            />

然后在OnCreateInputView方法:

@Override public View onCreateInputView() {
    if(theme == 1)
        mInputView = (KeyboardView) getLayoutInflater().inflate(R.xml.input , null);
    else
        mInputView = (KeyboardView) getLayoutInflater().inflate(R.xml.input1 , null);
    mInputView.setOnKeyboardActionListener( this);
    mInputView.setKeyboard(mQwertyKeyboard);
    mComposing.setLength(0);
    return mInputView;
}

并在onStartInput方法的末尾添加:

setInputView(onCreateInputView());

如果您已经完成了它,您需要的是为特殊键设置不同的背景。也许我写的问题的解决方案可以帮助你:https://stackoverflow.com/a/18354298/2683898

祝你好运! :)