2012-06-23 110 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)