我在我的应用程序中有一个自定义键盘,希望在运行时根据用户偏好更改文本颜色。我可以在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。有什么想法吗?
2条答案
按热度按时间euoag5mw1#
这并不是你所要求的,但是它解决了我的问题。你可以通过在layout文件夹中添加不同的keyboard.xml来定义不同的主题(就像你问题中的那个);并在运行时更改它们。
41zrol4v2#
首先,创建一个从KeyboardView扩展的类(假设其名称为
mKeyboardView
)。然后更改您的XML标记并使
android:keyTextColor
=中的颜色透明为:然后在mKeyboardView中覆盖
onDraw
函数,并手动绘制字母,如下所示:与上面的代码一样,您可以控制字体大小、颜色、粗细和许多其他属性。
希望我的回答能帮到大家。