aangepast toetsenbord en het creëren van een speciaal keyboard in de robot,,,,,,,,,, 76, 25 - eenheid,,,,,,,, de delen van het netwerk, maandag wat in tuts + koers zal dalen tot slechts drie dollar.Niet' niet missen.,,,,,, je creëert, de meeste androide niet toetsenbord.Integendeel, ze afhankelijk van virtuele toetsenbord aanvaardt de inbreng van gebruikers.Als je in de androïde persoonlijk, weet hoe de oprichting van een gewoonte, zachte toetsenbord kan je hobby 's, een heel nieuw niveau.,,, de androïde SDK, zo snel je kunt van de code is zeer klein, lijn voor het creëren van een toetsenbord, omdat het SDK zorgen voor veel lagere andere taken, zoals de identificatie van de belangrijkste op de foto toetsenbord en input - gebied in een relatie. En, in deze handleiding zal je leren hoe te komen tot een volwaardige toetsenbord, kan ik je een androïde standaard toetsenbord.,, 1.Je moet het uitgangspunt van de installatie, de verduistering van ADT bundel.Je kan het downloaden van de website van het androïde ontwikkelaars.,, 2.Het creëren van een nieuw project, vuur, erosie en het creëren van een nieuwe robot van toepassing.Op dit verzoek, simplekeyboard,.Om ervoor te zorgen dat u heeft gekozen voor een uniek pakket heet.De vaststelling van de vereiste minimale SDK, androïde 2.2 doelstellingen, SDK, robot, 4.4,.,,,,, deze procedure heeft niet geannuleerd, het creëren van activiteiten, klik gedaan,,,,,,, 3.De lijst van het toetsenbord is uitgegeven, een zachte, input... (IME), door de androïde.De tijd is aangegeven, diensten, het gebruik van XML -,, bind_input_method, vergunningen en te reageren op de androïde. Waarden. De input,,,,, door toevoeging van de volgende code, de toepassing van de lijst van de etikettering:,, < service robot: naam = ". Simpleime" androïde label = "@ string /simple_ime machtigingen"... = 'androïde toestemming. Bind_input_method "> < - de androïde: naam:" de androïde. "Ik" de androïde middelen = "@ XML - //> < bedoeling filter > < actie - naam:" de androïde. Waarden. De input "/> < /de bedoeling van filters > < /services >,, 4.De methode van het creëren van XML -,,, diensten, het etiket op het manifest het dossier bevat een etiket, metagegevens, wordt een XML - bestand, XML - nomenclatuur,.Geen van deze documenten, de androïde systeem kennen we niet, diensten, als een effectieve methode van de invoer van diensten.Het dossier bevat met betrekking tot de invoer van gedetailleerde informatie over de methoden en subgroepen.We hebben het toetsenbord, de definitie van een enkele subtype, en_us , ter plaatse.Het creëren van catalogi, res /XML -, als het niet bestaat, en de toevoeging van het dossier, method.xml,.De inhoud van het dossier, en moeten zijn: het;?De XML - = "1" codering = "utf - 8"?> < input androïde = "xmlns:HTTP://architectuur. De androïde. COM /lucht /RES /androïde" > < - robot: etikettering = "@ string /subtype_en_us" Android:imesubtypelocale = "en_us" Android:imesubtypemode = "," /> < /- in wet >, 5.Bewerken het touw. XML, deze aanvraag wordt de definitie van res/values/strings.xml, documenten in te brengen.We hebben drie string:,,, de toepassing, de naam van de input, de etikettering van de IME subtype, vernieuwing van je, dus het is strings.xml, het volgende:,,, < middelen > < - naam = "app_name" > simplekeyboard < /. > < - naam = "simple_ime" > eenvoudige inbreng < /serie > < - naam = "subtype_en_us" > Engels (de Verenigde Staten) < /serie > < /middelen GT;,, 6.De definitie van toetsenbord indeling van de lay - out, we alleen die, die KeyboardView,.En layout_alignparentbottom, eigendom, echt, zo 'n toetsenbord verschijnt op het scherm van de bodem, het creëren van een document, genaamd, res/layout/keyboard.xml, met de volgende inhoud:,, de vervanging, <?De XML - = "1" codering = "utf - 8"?> < android.inputmethodservice.keyboardview xmlns:Android = "" "" http://schemas.android.com/apk/res/android Android:ID = + ID /toetsenbord: "de androïde layout_width =" match_parent "Android:layout_height =" wrap_content "Android: layout_alignparentbottom =" waar "- keypreviewlayout =" @ indeling /preview />,,, keypreviewlayout, is de indeling van de POP - up. Dat als een sleutel op het toetsenbord wordt ingedrukt.Het bevat een gemeenschappelijke structuur voor de,,.Het creëren van een naam, en res/layout/preview.xml, wordt het volgende toegevoegd:,, <?De XML - = "1" codering = "utf - 8"?> < structuur xmlns:Android = "http://schemas.android.com/apk/res/android" Android:layout_width = "match_parent" Android:layout_height = "match_parent" androïde: zwaartekracht = "het centrum" - achtergrond = "# ffff00" androïde stijl = "grote gal": de omvang van de tekst van de androïde = "30sp" > < /Structuur >,, 6.Definitie van het toetsenbord Toetsenbord, de positie en de details in het XML - bestand aangewezen. De belangrijkste, met de volgende eigenschappen:,,, keylabel: deze eigenschap bevat, weergegeven in de cruciale tekst,., code: deze eigenschap bevat unicode waarde van cruciaal belang is, bijvoorbeeld de definitie van,,, Voor de brief. De sleutels,,, code eigenschappen moet waarde, 97, en, keylabel eigenschap moet worden vastgesteld voor de ,,,,, als er meer dan één van de code is een cruciale rol, dan is het van essentieel belang is afhankelijk van het aantal kranen die belangrijke . Bijvoorbeeld, als Een van de belangrijkste code 63 33,,,,,,, in de : 58, de kenmerken van de belangrijkste resultaten van een kraan?In de figuren, , na twee lullen!,, in karakter, continue snelle resultaten van drie kranen:,,, de sleutel kan ook een facultatief eigenschap:,,, keyedgeflags: deze eigenschap kan worden, is de waarde van , links of rechts,.Deze eigenschap wordt toegevoegd aan een rij van links en rechts van de bond, de definities van de kenmerken, de keywidth,: heeft een sleutel van de breedte.Het wordt meestal gedefinieerd als een percentage van de waarde kan worden herhaald:.,,, als deze eigenschap is vastgesteld, , generaal, de cruciale rol van de herhaalde.In het algemeen is, echt, voor het schrappen van de spatiebalk.,,, een sleutel verdeeld in .Dit is een goede praktijken te beperken, in een van de sleutels voor maximaal tien, en elke sleutel heeft een breedte gelijk is aan 10% van het toetsenbord.De sleutel is de hoogte, 60dp, van deze handleiding.Deze waarde kan worden aangepast, maar de waarde van minder dan 48dp, niet aanbevolen.We hebben toetsenbord in rij vijf sleutels.,, kunnen we nu verder gaan met het ontwerp van het toetsenbord.Creëer een nieuwe dossier genaamd, res/xml/qwerty.xml, . De inhoud en met de volgende, < 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= "Links" /> < Key android:codes= "50" android:keyLabel= "2" /> < Key android:codes=' 51 android:keyLabel= '3' /> < Key android:codes= '52' android:keyLabel= "4" /> < Key android:codes= '53 android:keyLabel= "5" /> < Key android:codes= "54" android:keyLabel=' 6 '/> < Key android:codes= "55" android:keyLabel= "7" /> < android:codes= "56".Android:keyLabel= "8" /> < Key android:codes= "57" android:keyLabel= "9" /> < Key android:codes= "48" android:keyLabel= "0" android:keyEdgeFlags= "goed" /> < /Row> < Row> < Key android:codes= "113" android:keyLabel= "Q" android:keyEdgeFlags= "links" /> < de stick. Android:codes= 119 "android:keyLabel=" W "/> < Key android:codes= '101' android:keyLabel=" e "/> < Key android:codes=" 114 "android:keyLabel=" r "/> < Key android:codes=" 116 "android:keyLabel=" t "/> < Key android:codes= 121" android:keyLabel= "y" /> < de sleutel android:codes= "117" android:keyLabel= "e" /> < Key android:codes= "android:keyLabel= 105" "I" /> < Key android:codes= 111 "android:keyLabel=" O "/> < Key a;Ndroid:codes= "112" android:keyLabel= "P" android:keyEdgeFlags= "goed" /> < /Row> < Row> < Key android:codes= "97" android:keyLabel= "A" android:keyEdgeFlags= "links" /> < Key android:codes= "115" android:keyLabel= "s" /> < Key android:codes= "100" android:keyLabel= "D" /> < Key android:codes= "102" android:keyLabel= "f" /> < Key android:codes= "103" android:keyLabel= "g" /> < Key android:codes= 104 "android:keyLabel=" H "/> < Key android:codes=" 106 "android:keyLabel=" J "/> < Key android:codes=" 107 "android:keyLabel=" K "/> < Key android:codes=" 108 "android:keyLabel=" L "/> < Key android:codes=" 200 "android:keyLabel=" \\# \\@ "android:keyEdgeFlags=" goed "/> < /Row&g;T; < Row> < Key android:codes= "1" android:keyLabel= "caps" android:keyEdgeFlags= "links" /> < Key android:codes= "122" android:keyLabel= "Z" /> < Key android:codes= '120' android:keyLabel= "X" /> < Key android:codes= "99" android:keyLabel= "C" /> < de sleutel android:codes= "118" android:keyLabel= "V" /> < Key android:codes= '98 android:keyLabel= "B" /> < Key android:codes= 110 "android:keyLabel=" n "/> < Key android:codes=" 109 "android:keyLabel=" m "/> < Key android:codes=" 46 "android:keyLabel=". "/> < de sleutel android:codes="; 63,33,58 "android:keyLabel="?!: "android:keyEdgeFlags=" recht "/> < /Row> < rij android:rowEdgeFlags=" bodem "> < Key android:codes=" 44 "android:keyLabel=", "android:keyWidth=" 10%p "android:keyEdgeFlags=" links "/> < Key android:codes=" 47 "android:keyLabel=" /"android:keyWidth=" 10%p "/> < Key android:codes=;" 32 'android:keyLabel= "ruimte" android:keyWidth= "40%p" android:isRepeatable= "waar" /> < Key android:codes= "5" android:keyLabel= "del" android:keyWidth= "20%p" android:isRepeatable= "waar" /> < Key android:codes= "4" android:keyLabel= "of" android:keyWidth= "20%p" android:keyEdgeFlags= "recht" /> < /Row> < je kan /Keyboard>,,, hebben noticed dat wat sleutels hebben negatieve waarden voor de codes, attribute.De waarde van de vooraf bepaalde negatieve en constante, toetsenbord, in de categorie van de vooraf gedefinieerde constante gelijk zijn.Bijvoorbeeld, de waarde gelijk is aan de waarde van 5, toetsenbord,. Keycode_delete,,,,, 7.Het creëren van een soort,,, diensten, het creëren van nieuwe Java en noemt het een simpleime Java,.,. klasse moeten worden verlengd, en dat InputMethodService, , onkeyboardactionlistener, interface. , onkeyboardactionlistener, interface met methoden die worden genoemd als zachte toetsenbord of op simpleime.,,,,, categorie dient drie variabelen:,, een in de lay - out erfenis KeyboardView die definitie van mening , toetsenbord, zaak toegewezen, een , die KeyboardView, Bull, vertelde ons dat als we de petten op, na de verklaring van deze variabelen, en de toevoeging van , onkeyboardactionlistener, methoden interface, simpleime, eruit moet zien:,, de les simpleime de uitbreiding van de verwezenlijking van onkeyboardactionlistener {speciaal keyboard InputMethodServiceVooruitzichten kV; speciale toetsenbord; particuliere booleaanse dekking = vals; - de leegte onkey (int primarycode, int [...] code) {} - de leegte Fallon (int primarycode) {} - de leegte onrelease (int primarycode) {} - tekst (karakter... De leegte van de tekst van de swipedown {} - Nietigverklaring) () {} - de leegte swipeleft () {} - de leegte swiperight () {} - de leegte swipeup () {}), wanneer het toetsenbord,,, oncreateinputview, een methode die wordt aangeduid als.Alle variabelen, diensten, hier kan worden gestart.De uitvoering van de bijgewerkt, oncreateinputview, voor de ogen van het publiek als volgt:,, de oncreateinputview () {kV = (erfenis KeyboardView) getlayoutinflater (). De uitbreiding (r.layout.keyboard, nul); nieuwe toetsenbord Toetsenbord = (dit r.xml. Qwerty); kV. Setkeyboard (toetsenbord); kV. Setonkeyboardactionlistener (de) en een terugkeer naar de kV;}, en we creëren een methode aan de , stem als een knop wordt ingedrukt.We , audiomanager, klasse geluid.De androïde SDK omvat een standaard - sleutels en die voor de playclick ,,.,, playclick particuliere nietig (int keyCode) {audiomanager is = (audiomanager) getSystemService (audio_service); - (code) (zaak 32: ja. Playsoundeffect (audiomanager. Fx_keypress_spacebar); de doorbraak keyboard.keycode_done; zaak: Zaak C - 10: ja. Playsoundeffect (audiomanager. Fx_keypress_return); breuk; zaak keyboard.keycode_delete: ja. Playsoundeffect (audiomanager. Fx_keypress_delete); de schuld; standaard: ja. Playsoundeffect (audiomanager. Fx_keypress_standard);}}, en ten slotte de actualisering, cruciale, zodat we kunnen aanvragen voor gebieden met een toetsenbord de methoden van communicatie (in het algemeen, de redactie, de standpunten van de andere aanvragen),,,,, getcurrentinputconnection, is de methode voor het verkrijgen van een verbinding met een andere toepassing van de ingang van het veld.Als we een verbinding, kunnen we gebruik maken van de volgende methoden:,,, committext, toevoeging van een of meer karakter van velden, deletesurroundingtext, geschrapt in het gebied van een of meer letters, sendkeyevent sturen, gebeurtenissen, zoals de toepassing van keycode_enter naar buiten, als de gebruiker op de,,, Zachte toetsenbord, een van de belangrijkste, een van de belangrijkste methoden met de sleutel, is de waarde van de parameters als werk.Op basis van deze waarde, toetsenbord uit één van de volgende maatregelen:,, als de code, keycode_delete, tot de cursor links een karakter, deletesurroundingtext, geschrapt, als de code, keycode_done,,, keycode_enter, belangrijke gebeurtenissen, als de code. Ja, keycode_shift,,, de bovengrens van variabele verandering. En De verplaatsing van het toetsenbord staat, de methode voor de aanpassing van setshifted.Het toetsenbord moeten hertekend, verandering van de toestand van de etikettering, de sleutel te actualiseren.Invalidateallkeys, recht, opnieuw alle sleutels van alle andere, de code is omgezet in een personage naar de ingang van het veld.Als vertegenwoordiger van een alfabetische code, in hoofdletters, de variabele is die echt, dan, omgezet in hoofdletters, karakter, gericht op vernieuwing,.,,, ziet het er zo uit:,, de leegte onkey (int primarycode, int [...] code) {inputconnection IC = getcurrentinputconnection (); playclick (primarycode); - (primarycode) - Zaak keyboard.keycode_delete:IC. Deletesurroundingtext (1 0); breuk; zaak keyboard.keycode_shift: Bovengrens =!Het GLB, het toetsenbord. Setshifted (Petten); kV. Invalidateallkeys (); de breuk; zaak keyboard.keycode_done (nieuwe keyEvent:IC. Sendkeyevent (keyEvent keyevent.action_down,. Keycode_enter)); de schuld; default character CODE = (CHAR) primarycode; als het karakter in de letter (. Serie is (code) & & Petten) (code = karakter. ToUpperCase (code);} IC. Committext (reeks waarden (code), 1, 8);}}.Het testen van het toetsenbord Toetsenbord en nu klaar zijn om te testen.De opstelling en de apparatuur in de androïde.Dit programma is, de activiteiten, het betekent dat het is niet te zien op de zender.Het te gebruiken, het moet in de eerste plaats in de inrichting, activering.,,,,,, eenvoudige inbreng, de opening van een aanvraag om de tekst (bijvoorbeeld, een boodschap van toepassing is), in een gebied van de input, klik.Je moet naar een toetsenbord icoon in de kennisgeving.Dat hangt af van uw apparaat kan icoon klikken of met een eenvoudige keuze in kennis onder de kolom, input, input - methode, zoals je nu. moeten gebruik kunnen maken van je toetsenbord.,,,,,,, in de conclusies van deze handleiding, je hebt geleerd hoe te beginnen met het creëren van een Speciaal programma van het toetsenbord. van uiterlijk veranderen en het gevoel van je toetsenbord, alles wat je moet doen is de stijl van de toevoeging van extra, res/layout/keyboard.xml, res/layout/, preview.xml, documenten.De sleutel tot verandering van locatie, bijwerken , res /XML - /qwerty.xml, documenten. nog meer taken op je toetsenbord, verwijst naar de ontwikkeling van het document,,.
Het creëren van een androïde
Previous:Hoe schrijf