2012-04-03 4 views
8

내가하고 싶은 것은 소프트 키보드를 사용하는 동안 현재 누르고있는 키를 보여주는 팝업 만 숨기는 것입니다. 이것이 가능한가? 나는 그들 자신을위한 필요가 없을 자신의 새로운 키보드를 만들고 있습니다.Android 키보드 키 미리보기 숨기기

아래 그림은 및 android:popupCharacters을 사용하여 표시 할 수있는 실제 팝업 키보드입니다 (Keyboard.Key XML).

Popup Android Keyboards

그러나 이미지 아래 하지 것과 동일한 (또한 this picture 참조). XML을 사용하거나 프로그래밍 방식으로 다음을 수행 할 수 있습니까?

Android Keyboard Popups

답변

14

a little bit of the actual android keyboard source code을 읽은 후 ". 우울 키의 확대 버전을 표시하는 팝업이"

내가있는 "키 미리보기"이었다 언급했다 기본적으로 미리보기가 활성화되어 있지만 비활성화하려면 간단히 setPreviewEnabled(boolean previewEnabled)입니다. KeyboardView 클래스의 메소드입니다. API.

+0

@Whymarrh 인사를 확장하는 사용자 정의 클래스 내에서 미리보기를 사용하지 않으려면 어디에서 내가 위의 첫 번째 키보드 q 아래에 표시된 것과 같이 하나의 키에 여러 문자를 표시하려는 문제에 직면하고 있습니다. 레이블을 사용하여 키에 다중/다중 문자를 표시하려고 시도한 후이 링크 "http : //puu.sh/4Xmz1.png ". 그렇다면 키에 여러 문자를 표시하는 방법을 안내해주십시오. – Aniket

+0

@Aniket GitHub : http://git.io/mM7pPQ에서 온라인으로 전체 소스 코드를 볼 수 있습니다. 유니 코드 문자를 사용하여 http://git.io/SXo3GA와 같이 키에 필요한 것을 표시 할 수 있습니다. – Whymarrh

+0

그것은 나를 위해 일했다. 방금 "KeyboardView"클래스에서 "setPreviewEnabled (boolean)"메서드를 사용해야했습니다. –

5
public void onPress(int primaryCode) { 
    mInputView.setPreviewEnabled(false); 
} 

public void onRelease(int primaryCode) { 
    mInputView.setPreviewEnabled(true); //Change to false if you want remove too for the Del key when it's pressed 
} 

또한보기를 얻을 보편적으로, 나는 또한 softkeyboard 일하고 자신에 개발 한 경우 InputMethodService

private KeyboardView mInputView; 
    @Override 
    public KeyboardView onCreateInputView() { 
     mInputView = (KeyboardView)getLayoutInflater().inflate(R.layout.keyboard, null); 
     mInputView .setPreviewEnabled(false); 
     return mInputView; 
    }