2013-08-17 12 views
5

Pracuję nad niestandardową aplikacją klawiatury. Muszę ustawić różne motywy dla klawiszy lub kolor tła w klasie KeyboardView i uzyskać kolor klucza w onCreateInputView() w SoftKeyboard rozszerza InputMethodService Class.Jak zmienić kolor klawiszy w klasie KeyboardView w niestandardowej klawiaturze Androida?

Jednak nie wiem, jak uzyskać określony klucz zgodnie z kodem, aby zmienić kolor lub tło określonego klucza.

+0

Co próbowaliście do tej pory? Podanie kodu, który wypróbowałeś, pomoże ci uzyskać pomoc. –

+0

Mam ustawione na input.xml i input1.xml – user

+0

Potrzebuję uzyskać kod dostępu w czasie wykonywania, tzn. Inny kluczowy kolor użyłem trzech input.xml, input1.xml, input2.xml, jeśli input.xml nadyma niż keycolor będzie zielony , niebieska kombinacja, jeśli input1.xml nadyma klawisze, kolor tła będzie czerwony i pomarańczowy .. podobny do input2.xml, więc nie mam pojęcia, jak to zrobić. – user

Odpowiedz

8

Na każdym zaczepienia wejściowego układu korzystania z Androidem: keyBackground = ".."

przykład:

input.xml:

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

input1.xml:

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

następnie przy użyciu metody OnCreateInputView:

@Override public View onCreateInputView() { 
    if(theme == 1) 
     mInputView = (KeyboardView) getLayoutInflater().inflate(R.xml.input , null); 
    else 
     mInputView = (KeyboardView) getLayoutInflater().inflate(R.xml.input1 , null); 
    mInputView.setOnKeyboardActionListener(this); 
    mInputView.setKeyboard(mQwertyKeyboard); 
    mComposing.setLength(0); 
    return mInputView; 
} 

i na końcu metody onStartInput dodać to:

setInputView(onCreateInputView()); 

Jeśli już to zrobił i co potrzebne jest, aby ustawić inny kontekst specjalnych kluczy. Być może rozwiązanie mojego problemu, który napisałem, pomoże: https://stackoverflow.com/a/18354298/2683898

Powodzenia! :)

+0

Również tło nie musi być rysownikiem. Może to być również zasób kolorów. –

Powiązane problemy