2012-06-23 82 views
0

我正在android中构建自定义键盘。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

由于这是一个自定义视图,您需要解决您自己的自定义视图代码。这可能是一个实施挑战,而不是一个错误或问题。如果您至少能够展示您的处理方式以及结构如何,我们可以提供建议。 – davidcesarino

+0

为MyKeyboardView的代码可以在 http://pastebin.com/dE2DnPBL 发现我旁边有一个叫做MyKeyboardService类保存服务 http://pastebin.com/HYPGFTfg 在overrided功能onPress我可以更改单个键的图标。该图标是前景图标。但我不想这样做,我想更改单个键的keyBackground。我一直在寻找几天,但没有成功。 – Wouter

+0

对不起,我的自定义MyKeyboardView的代码可以在这里找到:http://pastebin.com/ZpLzZZUj – Wouter

回答

0

仅仅因为你已经从KeyboardView延长并不意味着你可以很容易地选择一个键并改变它的绘制方式。

source of the KeyboardView特别是从行678开始的for循环显示了键盘的绘制有多复杂。

你可以做什么:重写onDraw()方法,调用super.onDraw()并获取你想要的键值,然后再次绘制这个键值。您可能需要进行大量的自定义工作,并且可能需要大量复制原始代码的粘贴来完成某些操作。

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