2015-05-16 38 views
13

Jestem ciekawa, w jaki sposób mogę zaimplementować następującą nakładkę dla niektórych przycisków lub przycisków, jak pokazano na poniższym obrazku? Wdrażam własną klawiaturę ... potrzebowałem tego samego dla tego samego.Nakładka na klawiaturę z klawiaturą Android

enter image description here

EDIT:

Więc wdrożyliśmy klawiaturę jak po użyciu Gridview.

enter image description here

Teraz staram się umieścić kilka nakładek (po kliknięciu), jak w domyślnej klawiatury.

Dzięki :)

+0

piękne pytanie Chcę coś nowego –

Odpowiedz

6

Czego szukasz „klucz podgląd” Zakładam, że używasz KeyboardView aby utworzyć niestandardową klawiaturę. Można włączyć podgląd klucza dzwoniąc setPreviewEnabled(boolean previewEnabled) powinno być coś takiego: mKeyboardView.setPreviewEnabled(true);

Edit:

myślę, że to link pomoże Ci w realizacji i wyjaśnia bardziej szczegółowo, co starałem się.

Najpierw trzeba utworzyć układ za pomocą klawiatury, zazwyczaj zawiera ona tylko keyboardView:

<?xml version="1.0" encoding="UTF-8"?> 
    <android.inputmethodservice.KeyboardView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/keyboard" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:keyPreviewLayout ="@layout/preview" /> 

A potem utworzyć inny układ dla podglądu

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center" 
    android:background="#ffff00" 
    android:textStyle="bold" 
    android:textSize="30sp">  
</TextView> 

Po tym można zaprojektować swoją klawiaturę w twoim przypadku coś takiego:

<Keyboard xmlns:android="http://schemas.android.com/apk/res/android" 
    android:keyWidth="10%p" 
    android:horizontalGap="0px" 
    android:verticalGap="0px" 
    android:keyHeight="60dp"> 
    <Row> 
     <Key android:codes="49" android:keyLabel="1" android:keyEdgeFlags="left"/> 
     <Key android:codes="50" android:keyLabel="2"/> 
     <Key android:codes="51" android:keyLabel="3"/> 
    </Row> 
    <Row> 
     <Key android:codes="52" android:keyLabel="4"/> 
     <Key android:codes="53" android:keyLabel="5"/> 
     <Key android:codes="54" android:keyLabel="6"/> 
    </Row> 
    <Row> 
     <Key android:codes="55" android:keyLabel="7"/> 
     <Key android:codes="56" android:keyLabel="8"/> 
     <Key android:codes="57" android:keyLabel="9"/> 
    </Row> 
</Keyboard> 

Wreszcie w twoim java co możesz zawyżać swoją klawiaturęView lub otrzymasz ją według jej identyfikatora, jeśli jest uwzględniona w fragmencie lub układzie działania. i ustawiłeś klawiaturę, którą do niej zaprojektowałeś.

kv = (KeyboardView)getLayoutInflater().inflate(R.layout.keyboard, null); 
keyboard = new Keyboard(this, R.xml.numeric); 
kv.setKeyboard(keyboard); 
kv.setOnKeyboardActionListener(this); 

Powodzenia.

+0

Nie używam widoku klawiatury. Stworzyłem własną klawiaturę, korzystając z widoków. Ale aby stworzyć niesamowite wrażenia za pomocą naciśnięć klawiszy, chciałem zaimplementować taki rodzaj nakładki z normalną prasą widokową. Dzięki – sagarpatidar

+0

Nie rozumiem, co masz na myśli, używając widoków!Czy możesz dodać więcej szczegółów na temat tworzenia własnego keyborda? Zazwyczaj trzeba utworzyć grupę kluczy xml z wierszami i kluczami, układ xml dla klawiatury i drugą dla podglądu. – MAB

+0

MAB, więcej szczegółów. – sagarpatidar

1

Do funkcji podglądu klucza można użyć funkcji PopupWindow (w rzeczywistości zrobiłem to samo podczas ostatniego projektu IME).

Polecam przy użyciu klasy podrzędny KeyboardView ponieważ oferuje Ci wiele czasu, aby funtions rzeczy eay.Each key jest wciśnięty, onPressed nazywa powrotem i wtedy wiesz, który z nich jest wciśnięty. I zanurz się w kodzie źródłowym KeyboardView, możesz dowiedzieć się, gdzie umieścić swoją klasę popupWindow.

Tylko niewielki wysiłek. Ale jeśli twoja klasa nie pochodzi z KeyboardView (jak przy użyciu GridView), będziesz musiał poświęcić więcej czasu, aby to zrozumieć. W każdym razie kod źródłowy to dobry początek.

+0

Brzmi jak dobry pomysł, PopupWindow, spróbuję tego. Dzięki. – sagarpatidar

+0

http://stackoverflow.com/questions/9350654/popup-keyboard-issue-in-android-when-column-limits-are-specified patrz: –