0

我正在android中构建一个自定义键盘。

我的 input.xml:

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

所有的键都具有相同的背景。现在我正在尝试动态更改一个键的背景。这可能吗?

我的自定义 MyKeyboardView 的代码可以在这里找到:http: //pastebin.com/ZpLzZZUj

我的 MyKeyboardService 的代码可以在这里找到:http: //pastebin.com/HYPGFTfg

4

1 回答 1

1

仅仅因为您已从 KeyboardView 扩展,并不意味着您可以轻松地选择一个 Key 并更改它的绘制方式。

KeyboardView的源代码,尤其是从第678行开始的 for 循环,显示了键盘的绘制有多复杂。

你可以做什么:覆盖 onDraw() 方法,调用 super.onDraw() 然后得到你想要的键,然后只画这个键。您可能需要大量定制,并且可能需要大量复制和粘贴原始代码才能完成任务。

主要问题:这项工作真的有必要吗?我个人不希望某些应用程序改变我众所周知的键盘外观和感觉(只要它不是真正的自定义键盘应用程序:D)

于 2012-06-24T16:35:23.853 回答