我的应用程序中有自定义键盘,希望根据用户偏好在运行时更改文本颜色。我能够在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。有什么想法吗?
答案 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);
}