Android动态更改密钥的背景

时间:2012-06-23 15:10:52

标签: android xml

我正在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

1 个答案:

答案 0 :(得分:1)

仅仅因为你从KeyboardView扩展并不意味着你可以轻松选择一个键并改变它的绘制方式。

source of the KeyboardView,尤其是行678中的for循环,显示了键盘绘图的复杂程度。

你可以做什么:覆盖onDraw()方法,调用super.onDraw(),然后获取你想要的密钥,再次只绘制这个密钥。您可能需要进行大量自定义,并且可能需要对原始代码进行大量复制和粘贴才能完成某些任务。

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