2013-01-21 4 views
2

Я создаю пользовательскую клавиатуру, меняя text & icon of key во время выполнения, и я успешно меняю text of key, но не могу найти способа изменить icon of key.Изменение значка ключа во время выполнения в пользовательской клавиатуре

любая помощь, подсказка будет заметна.

Код для изменения ключа текст:

Keyboard currentKeyboard = CustomKeyboard.mInputView.getKeyboard(); 
List<Keyboard.Key> keys = currentKeyboard.getKeys(); 
CustomKeyboard.mInputView.invalidateKey(changeKey); 
keys.get(changeKey).label = "Change Text"; 
+0

что это changekey? помогите мне быстро –

ответ

2

не использовать ".lable" собственность.
Это займет либо> lable, либо .icon (grrrr .... очень плохо, но все же это очевидно, рассмотрите верхнюю вещь на изображении, потому что здесь значок не фон, а его верхнее изображение.)
Вместо этого у вас есть использовать:

android:keyIcon="@drawable/your_top_icon" 
android:text="your_text"(Text will not appear on key but you will get this value in listener.) 

Теперь сценарий будет также кувырком:
вместо OnKey() метод в настоящее время метод КОНТЕКСТ() будет называться (последовательность будет такой же)
Таким образом, вы можете изменить индивидуальный значок во время выполнения.

keys.get(changeKey).text = "Change Text"; 
keys.get(changeKey).icon = Drawable; 

католита точки:
Это означает, что если у вас есть 40 (или 400) Ключи в вашей клавиатуры, вы должны использовать 40 различных изображений: '(

Вы можете применить некоторые приемы, как применение стиля , но опять же это будет для китового макета, для индивидуального ключа стиля не будет работать.

Я тоже в поисках какой-то другой способ, чтобы заменить изображение для индивидуала, если найти что-нибудь даст вам знать.

0

на моем пути в OnKey:

case keycode: 
    Keyboard currentKeyboard = mInputView.getKeyboard(); 
    List<Keyboard.Key> keys = currentKeyboard.getKeys(); 
    mInputView.invalidateKey(*keycode*); 
    keys.get(*keycode*).label = null; 
    key.get(*keycode*).icon = getResources().getDrawable(R.drawable.image); 

скан является: ключевой код на XML или Keyboard.KEYCODE _...

Смежные вопросы