2013-08-17 9 views
5

Sto lavorando ad un'applicazione per tastiera personalizzata. Devo impostare temi diversi per le chiavi o il colore di sfondo nella classe KeyboardView e ottenere il colore della chiave su onCreateInputView() in SoftKeyboard estende InputMethodService Class.Come cambiare il colore dei tasti in KeyboardView Class nella tastiera Android personalizzata?

Tuttavia non riesco a ottenere come ottenere una chiave particolare in base al codice chiave in modo da poter cambiare il colore o lo sfondo di una particolare chiave.

+0

Cosa hai provato finora? Fornire il codice di ciò che hai provato ti aiuterà ad ottenere aiuto. –

+0

ho impostato su input.xml e input1.xml – user

+0

ho bisogno di ottenere keycode in fase di runtime, ovvero colore chiave differente ho usato tre input.xml, input1.xml, input2.xml se input.xml viene gonfiato rispetto a keycolor sarà verde , combinazione blu se input1.xml gonfia le chiavi colore di sfondo sarà rosso e arancione .. simile per input2.xml quindi non ho capito come fare a questo – user

risposta

8

Su qualsiasi differente ingresso la layout uso android: keyBackground = ".."

esempio:

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" 
      /> 

quindi sul metodo 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; 
} 

e alla fine del metodo onStartInput aggiungere questo:

setInputView(onCreateInputView()); 

Se hai già fatto e ciò che è necessario è quello di impostare uno sfondo diverso a tasti speciali. Forse la soluzione al mio problema che ho scritto ti aiuterà: https://stackoverflow.com/a/18354298/2683898

Buona fortuna! :)

+0

Inoltre, lo sfondo non deve essere un drawable. Può essere anche una risorsa di colore. –

Problemi correlati