我正在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
答案 0 :(得分:1)
仅仅因为你从KeyboardView扩展并不意味着你可以轻松选择一个键并改变它的绘制方式。
source of the KeyboardView,尤其是行678中的for循环,显示了键盘绘图的复杂程度。
你可以做什么:覆盖onDraw()方法,调用super.onDraw(),然后获取你想要的密钥,再次只绘制这个密钥。您可能需要进行大量自定义,并且可能需要对原始代码进行大量复制和粘贴才能完成某些任务。
主要问题:这项工作真的有必要吗?我个人不希望某个应用程序改变我熟知的键盘外观和感觉(只要它不是真正的自定义键盘应用程序:D)