Hirdetés

Alkalmazásfejlesztés badára: Érintési effekt

Bevezetés

Aki használt már érintőképernyős telefont, valószínűleg találkozott a képernyőrezgés-hatással; ez magyarul azt jelenti, hogy a képernyőterület megérintett pontja környékén a mobil egy pillanatra bekapcsolja a  vibra effekttet. A legtöbb érintős készülék ezt gyakran kiegészíti egy hangeffekttel is, így a felhasználó további visszajelzéseket kap arról, hogy a megfelelő virtuális billentyűt nyomta le. Ez azért különösen fontos, mert míg egy klasszikus, fizikai klaviatúrával felvértezett mobilt kezelve az ember rendesen érzi, hogy melyik gombot tapicskolja, érintőképernyős telefonnál viszont ez nincs így, hiszen az egész kijelző felfogható egy nagy, programozható bilentyűhalomnak. A mai bejegyzésben a fent tárgyalt effektet fogjuk megvalósítani, azaz gombokhoz és egyéb, a felhasználói felületet alkotó elemekhez fogunk vibra, illetve hang alapú visszajelzést rendelni.

Az effektezéshez az Osp::Uix névtér egyik tagját fogjuk használni, ennek megfelelően inclode-olnunk kell a megfelelő headert (FUix.h). Az effekt kezelése eltér a "mezei" vibra funkció  (haptic) használatától, a gombokhoz és egyéb UI-elemekhez rendelhető effekt annál lényegesen egyszerűbben használható; míg előbbihez még egy SDK-kiegészítést is le kell tölteni (ez az Immersion TouchSense© SDK névre hallgat), hogy a beépített szimulátoron keresztül tesztelni lehessen az alkalmazásunkat, utóbbi egy egyszerű osztállyal megoldható. Természetesen így jóval kevesebb testreszabási lehetőséget kapunk az effektekkel kapcsolatban, sőt, szinte semennyit, összesen azt állíthatjuk be, hogy hang-, rezgés- vagy kombinált effektet szeretnénk előidézni, hapticet használva pedig rengeteg rezgési tulajdonságot állíthatunk be, de erről bővebben majd máskor.

Rezeg a léc

Az említett osztály az Osp::Uix::TouchEffect, amelyet rettentő egyszerűen lehet használni a szokásos kétfázisú konstruktor alapú inicializálás után; az osztály Play() névre hallgató függvénye játssza le a megadott effektet. Mint említettem, a bada SDK-ban jelenleg mindösszesen három fajta visszajelzési hatásból válogathatunk, ezek az Osp::Uix::TouchEffectType enumerátorból kerülnek ki. A lehetőségek:

  • TOUCH_EFFECT_VIBRATION : csak rezgés
  • TOUCH_EFFECT_SOUND : csak hang
  • TOUCH_EFFECT_SOUND_VIBRATION : hang és rezgés egyszerre

Nincs más dolgunk, mint a kiválsztott típust megetetni a Play() függvénnyel, és készen is vagyunk; ezzel az egyszerű, pár soros effekttel viszont sokat javítottunk az alkalmazásunk használatiának élményén.

A példaprogram ezt hivatott illusztrálni, természetesen elérhető a Mobilarénás SVN tárhelyből. Az alkalmazás lényege, hogy először ki kell választanunk a kívánt effektet három rádiógomb segítségével, majd ennek hatását érezhetjük az OK gomb megnyomásakor, mint az a fenti képen látható.

dr. Kind

Előzmények