2016-10-07 2 views
1

У меня есть пользовательская клавиатура с красными кнопками, когда я нажимаю, например, номер 1, когда цвет менялся на синий, когда я вытаскиваю палец с экрана, возвращается красный, я хочу остаться синим, кто-нибудь знает, как это сделать, вот мой изменение цвета (нажатие) XMLКак сохранить цвет фона ключа ...?

<selector xmlns:android="http://schemas.android.com/apk/res/android" 
     > 
      <item 
     android:state_pressed="true" 
     android:drawable="@drawable/pressed" /> 

    <item 
    android:state_checkable="true" 
    android:state_pressed="true" 
    android:drawable="@drawable/download" /> 


<item android:drawable="@drawable/red"/> 



      </selector> 

проверить это:

public class BasicOnKeyboardActionListener implements KeyboardView.OnKeyboardActionListener { 

private Activity mTargetActivity; 



public BasicOnKeyboardActionListener(Activity targetActivity) { 



    mTargetActivity = targetActivity; 
} 

@Override 
public void swipeUp() { 
    // TODO Auto-generated method stub 

} 

@Override 
public void swipeRight() { 
    // TODO Auto-generated method stub 

} 

@Override 
public void swipeLeft() { 
    // TODO Auto-generated method stub 

} 

@Override 
public void swipeDown() { 
    // TODO Auto-generated method stub 

} 

@Override 
public void onText(CharSequence text) { 
    // TODO Auto-generated method stub 

} 

@Override 
public void onRelease(int primaryCode) { 

    } 

    // TODO Auto-generated method stub 


    @Override 
    public void onPress(int primaryCode) { 

    } 

    // TODO Auto-generated method stub 

    @Override 
    public void onKey(int primaryCode, int[] keyCodes) 

{ 

    long eventTime = System.currentTimeMillis(); 
    KeyEvent event = new KeyEvent(eventTime, eventTime, 
      KeyEvent.ACTION_DOWN, primaryCode, 0, 0 ,0 , 0, 
      KeyEvent.FLAG_SOFT_KEYBOARD | KeyEvent.FLAG_KEEP_TOUCH_MODE); 

    mTargetActivity.dispatchKeyEvent(event); 


} 
+0

Pressed, скачать синий цвет – CJS

ответ

0
Add this methods to the `keyboardListner` 
public class SimpleIME extends InputMethodService 
    implements OnKeyboardActionListener{ 

    private KeyboardView kv; 
    private Keyboard keyboard; 

    private boolean caps = false; 

    @Override 
    public void onKey(int primaryCode, int[] keyCodes) {   

    } 

    @Override 
    public void onPress(int primaryCode) { 
    } 

    @Override 
    public void onRelease(int primaryCode) {    
    } 

    @Override 
    public void onText(CharSequence text) {  
    } 

    @Override 
    public void swipeDown() { 
    } 

    @Override 
    public void swipeLeft() { 
    } 

    @Override 
    public void swipeRight() { 
    } 

    @Override 
    public void swipeUp() { 
    } 
} 

и изменить onpressed и OnReleased цвет

подробнее по ссылке ... click here

+0

проверить мой код, это пользовательские клавиатуры я 'm не расширяет InputMethodService его всего за 1 приложение – CJS

+0

, и когда я нажимаю цвет, он меняет, но когда я его отпускаю, он переходит в свой старый цвет – CJS

0

попробовать, как этот

 <?xml version="1.0" encoding="utf-8"?> 
    <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- Button Focused--> 
     <item android:state_focused="true" 
       android:state_pressed="false" 
       android:drawable="@drawable/blue" 
       /> 
    <!-- Button Focused Pressed--> 
     <item android:state_focused="true" 
       android:state_pressed="true" 
       android:drawable="@drawable/blue" 
       /> 
    <!-- Button Pressed--> 
     <item android:state_focused="false" 
       android:state_pressed="true" 
       android:drawable="@drawable/blue" 
       /> 
<!-- Button not focused and Pressed--> 
     <item android:state_focused="false" 
       android:state_pressed="false" 
       android:state_selected="true" 
       android:drawable="@drawable/blue"/> 

    <!-- Button Default Image--> 
     <item android:drawable="@drawable/red"/> 

    </selector> 
+0

такой же ..! он переходит в красный цвет и возвращается к синему, когда я его выпускаю – CJS

+0

сейчас попробуйте обновленный –

+0

такой же :(......... – CJS