Ami a saját Android-billentyűzet

Ma megtanulják, hogy ott semmi, hanem nagyon is valós billentyűzet minden szabványos funkciók, amelyek ha azt szeretnénk, akkor is használja az Android készülék helyett a szabványos (képzelni - beírja SMSes saját billentyűzet, mi lehetne jobb: )). Ha úgy gondolja, hogy a lecke nagyon nehéz lesz - igazad van, tévedsz. Kiderült, hogy a standard funkcionális Android SDK Manager, amire szükség van, hogy hozzon létre egy teljes értékű billentyűzet felesleges szenvedést. Nem lesz felhívni a megjelenése gombok, vagy a megszokott elismerése billentyűk, vagy szenved árukapcsolás jövőnk billentyűzet beviteli mezőt. Mindez már az alapértelmezett az SDK-kezelőben, csak meg kell tanulni, hogyan kell kihasználni azt!

Kezdjük. Hozzon létre egy új projektet, hívtam billentyűzet (mint már megállapodott - a neveket tetszése, csak akkor nem tévesszen meg őket). Ebben a szakaszban, amikor felkérik, hogy hozzon létre egy részének vagy Activity, válassza a Hozzáadás nincs aktivitás és a Befejezés gombra.

Mindenek előtt azt kell tennie, hogy a mi alkalmazás, amely lehetővé teszi neki, hogy a billentyűzet :). Szeretnénk létrehozni saját beviteli eszköz, amely az úgynevezett írásjegybevivőjét (IME). ez határozza meg a nyilvánvaló fájlt Service. Engedélyek BIND_INPUT_METHOD és megfelel android.view.InputMethod lépéseket. Ide AndroidManifest.xml fájlt és a címkét következő:

Lásd piros aláhúzás (szoktuk), ne aggódj.

Szolgáltatás címke egy címkét . arra utal, hogy egy nem létező, amíg method.xml fájlt. Anélkül, hogy ez a fájl az Android operációs rendszer nem ismeri fel a helyes metol billentyűzet beviteli, hogy lehet használni. Ez a fájl adatait is tartalmazniuk kell a beviteli mód és annak altípusai. A mi billentyűzet meghatározni egyetlen altípus hu lokalizáció (akkor még nem kísérletezik a magyar, megértjük azt a fontos elvet). Készítsen mellékletben res / layout mappát, és létrehozza azt akarja, hogy method.xml fájlt. Hozd be a res / layout / mehod.xml fájlt a következőképpen:

Most módosítsa a szöveges erőforrások fájl res / érték / strings.xml. Meg kell adni egy sort itt:

- Íme az IME;

- Íme az altípus IME;

Az alkalmazás neve már van, akkor csak adjunk hozzá két kívánt sorokat. Szerkesztette strings.xml fájl így néz ki:

Most kell, hogy milyen típusú külső billentyűzetet. elrendezés fájlt a billentyűzet tartalmaznak csak egy tárgy - KeyboardView. Ahhoz, hogy a billentyűzet jelenik meg a képernyő alján, állítsa layout_alignParentBottom attribútum igaz. Hozzon létre egy fájlt res / layout / keyboard.xml következő:

keyPreviewLayout sor mit fog kinézni ha megnyom egy gombot a billentyűzeten. Mint látható, a megjelenése, lesz felelős megtekintett fájlt. amely azt fogja létrehozni. Hozzon létre egy fájlt res / layout / preview.xml és adjuk hozzá a következő tartalommal:

Most meg kell határozni billentyűparancsokat. A részletes leírást a kulcsokat, és azok helyét írja le a speciális .xml fájlt. Minden kulcs a következő tulajdonságokkal rendelkezik:
- keyLabel - kulcs neve, amely megjelenik a gomb;

- kódok - Ez az attribútum egy egyedi kódot, amely jellemzi az billentyűt nyom.

Minden gomb, legyen számok, betűk, a - jelent semmit saját egyedi kódját. Például az A betű értéke kódok - 97, illetve keyLabel kell adni az értéket „A”. Egy gomb, megadhatja több értéket az attribútum kódokat. A kulcs az, hogy egy meghatározott értéket a három is, attól függően, hogy hány alkalommal már megnyomott egy gombot (ne felejtse el a billentyűzetet régi mobil - ugyanazon a gombon, „a, b, c, d”, stb.) Például, ha meghatározzuk a gomb kódok 63.33 és 58, majd az érintőképernyő karaktert kapott, két csap, hogy egy rövid sorozatot, és a három gombnyomás - colon „?” „!” „”.

A kulcs lehet több attribútumok:

- keyEdgeFlags - attribútum értékét használja balra vagy jobbra. Ezeket az attribútumokat adjuk a kulcsot, hogy található a bal vagy a jobb szélen, illetőleg;

- keyWidth - határozza meg a szélessége a kulcsokat. Általában százalékos részeként definiáljuk;

- isRepeatable - ha ez az attribútum igaz. majd egy hosszú gombnyomás megismétli a műveletet többször (például „aaaaaa”) hajlamosak, hogy ezt a lehetőséget, hogy törölje a kulcsokat, szóköz, stb

A kulcsokat a billentyűzet vannak csoportosítva oszlopok. Elég praktikus 10 billentyűk és minden kulcs oszlopot, így 10% -os a szélessége a teljes szélességét a billentyűzetet. Mi fel a magassága a gombok egyenlő 60dp. Meg lehet változtatni, de ez nem ajánlott csinálni magassága kisebb 48dp. Mi lesz 5 oszlop kulcsokat.

Mozgó elmélettől a cselekvésre. Készítsen res / layout / qwerty.xml fájlt. A fájlnak tartalmaznia kell az alábbi kódot:

Egyes billentyűk lehet negatív érték attribútum kódok, ekvivalens beépített állandók a billentyűzet osztályban. Például, az értéke -5 megfelel Keyboard.KEYCODE_DELETE.

Most hozzunk létre egy új Java osztályt, és hívja meg IME.java. Meg kell öröklik az osztály, és nem InputMethodService OnKeyboardActionListener felület. Ez az interfész metódusokat tartalmaz, amelyek az úgynevezett gombokkal lehet.

Az IME osztály kell 3 típusú változó:

- KeyboardView - utalva a fajta meghatározott elrendezés file;

- Billentyűzet - alkalmazás, amelyek már rendelt KeyboardView;

- boolean - jelentések szerepelnek caps lock-e.

Ha ezt a fenti, a fájl IME.java válik:

Ha a billentyűzet úgy van beállítva, az úgynevezett onCreateInputView módszer. Minden változó lehet inicializálni Szervizcímkét ott a módszer. Add a módszer onCreateInputView.

Most be kell állítani a lejátszást hangjelzést, ha megnyomja a gombokat. Használjuk ezt az osztályt AudioManager. A standard módszerrel, a hangok PlayClick. Kód audio tuner:

Most kell beállítani onKey módszert annak érdekében, hogy munkánk a billentyűzet beviteli mezők (általában EditText) más alkalmazásoknak. Erre a célra getCurrenrInputConection módszer. Itt kell beállítani a következő:

- commitText -, hogy egy vagy több szimbólumot a beviteli mező;

- deleteSurroundingText - törölni egy vagy több szimbólumot a beviteli mezőben;

- sendKeyEvent - küldjön esemény típusát KEYCODE_ENTER. külső alkalmazással (olyan, ahol fogjuk használni billentyűzeten).

Minden alkalommal, amikor a felhasználó megnyom egy gombot a billentyűzeten nevezik onKey módszer. átvitelére egyedi értéket (kódok fentebb) a lenyomott gomb. Mivel az érték a kapott kódot, a billentyűzet olyan műveletet hajt végre, amely megfelel a kódot.

Hozd módszer onKey ebben a formában:

És végül az egészet! Mi fejezte be a leckét, és a billentyűzet készen áll a tesztelésre. Érdemes megjegyezni, hogy mivel a billentyűzet nincs aktivitás (Add nincs aktivitás, emlékszel?) Hogy ha telepítve van egy emulátor vagy eszköz nem jelenik meg a telepített programok között. Mindannyian bemegy a beállításokat és beviteli beállítások --- billentyűzet, és aktiválja a teremtés használják (vagy az egyik alkalmazott) beviteli mód. Futtatni semmit, ahol meg kell adnia a szöveget, és teszt!

Eredeti az útmutató itt.