如何在运行时以编程方式设置CustomKeyboard文本颜色?

时间:2018-01-29 08:32:53

标签: android android-studio keyboard android-softkeyboard android-custom-keyboard

我的应用程序中有自定义键盘,希望根据用户偏好在运行时更改文本颜色。我能够在XML中设置KeyTextColor,但没有这样的属性来以编程方式设置它。 这是我在Xml中设置的方式:

<?xml version="1.0" encoding="utf-8"?>
<app:android.inputmethodservice.KeyboardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/keyboard"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/transparent"
    android:keyBackground="@drawable/key_background"
    android:keyPreviewHeight="@dimen/dp_0"
    android:keyTextSize="40sp"
    android:keyTextColor="#00C853">//I set green text color here
</app:android.inputmethodservice.KeyboardView>

想要从程序中设置相同的KeyTextColor。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这不是你提出的问题,但它解决了我的问题。您可以通过在布局文件夹中添加不同的keyboard.xml来定义不同的主题(如问题中的那个);并改变它们的运行时间

@Override
public View onCreateInputView() {

    ...

    int theme_id=keyboard_prefs.getKeyboardThemeID();

    if(theme_id== KeyboardConstants.KEYBOARD_THEME_DARK_ID)
        mInputView=(LatinKeyboardView) getLayoutInflater().inflate(R.layout.keyboard_dark, null);
    else //if(theme_id==2)
        mInputView=(LatinKeyboardView) getLayoutInflater().inflate(R.layout.keyboard_light, null);

    }