Hirdetés

Alkalmazáskezelés badára: Fizikai gombok

Let's get physical

Hiába ad nagy tervezői és fejlesztői szabadságot az érintőképernyő, vannak olyan funkciók, amelyeket érdemes a telefonunk fizikai gombjaihoz kötni, főleg felhasználói élmény szempontjából. Ilyen lehet például egy játék megállítása, a kamera előhívása, a program hangerejének állítgatása, weboldal görgetése stb. Természetesen erre bada alatt is lehetőségünk van, lássuk, hogyan is néz ez ki!

Fizikai gombok a Samsung Wave-en

Az első badás készüléken, a Samsung Wave-en hét fizikai billentyűt találunk, mint az a fenti ábrán is látszik. Bal oldalt a hangerőszabályozó gombok, jobb oldalt pedig a képernyőzár és a kamera gyorsbillentyűje kapott helyet. A maradékot, azaz a hívásfogadás, menü és híváselutasítás gombokat a képernyő alatt találjuk. Az amúgy is szűkös gombkínálat összes elemének viselkedését azonban nem írhatjuk felül, a képernyőzár és a híváskezelés billentűi érthető módon tabuk, a menü gombra  pedig az alkalmazásunk ígyis-úgyis a háttérbe kerül, ezt akkor édemes figyelnünk, ha valami speciális működést szeretnénk ilyenkor előidézni.

Hogyan néz ki mindez kód szinten?

Szerencsére könnyű dolgunk van, a fizikai gombok kezelése pofonegyszerű. A megfelelő osztályban implementálnunk kell az Osp::Ui::IKeyEventListener interfészt, ez felel a klaviatúra eseményeinek kezeléséért. Ehhez szükséges az interfész három függvényének, az OnKeyPressed-nek, az OnKeyReleased-nek és az OnKeyLongPressed-nek az implementálása. A függvénynevek elég beszédesek, a gombok lenyomását, elengedését és nyomva tartását figyelik.

A példaprogramban csak az egyszeri lenyomással, azaz az OnKeyPressed() metódussal foglalkoztam. A függvény egyik bemenő paramétere egy Osp::Ui::KeyCode típusú változó, ez mondja meg, melyik billentyű van lenyomva. A KeyCode nem csak az a 4 gomb lehet, amely a Wave-en elérhető, a Samsung gondolt a későbbi, esetleges fizikai billentyűzettel érkező modellekre (például a teljes QWERTY klaviatúrával szerelt Wave 533-ra), így a választható kódok listájában sok további darabot is találunk. Ami a példaprogram szempontjából érdekes, az a KEY_SIDE_UP (hangerő növelése), KEY_SIDE_DOWN (hangerő csökkentése), KEY_SWITCH (menü) és a KEY_CAMERA(kamera gomb). A kódokat figyelve az OnKeyPressed függvényben egy switch-case segítségével mindig az aktuális gombnak megfelelő üzenet jelenik meg a képernyőn.

Látható, hogy az egész megoldható pár sor kódból, viszont az alkalmazásunk kezelhetőségén és ergonómikusságán nagyot tud dobni. A kód természetesen ismét elérhető az SVN-ből (http://mobilarenabadadev.googlecode.com/svn/trunk/), a projekt neve a fantáziadús FizikaiGombok.

dr. Kind

Azóta történt

Előzmények