Hirdetés

Alkalmazásfejlesztés badára: Zoomolgatás a térképen

Ma az előző bejegyzésben elkészített térkép-alkalmazást fogjuk tovább bővíteni a zoom funkcióval. Ehhez két softkey-t adunk a felülethez, amelyek a képernyő bal és jobb alsó sarkában helyezkednek el.

Magukat a softkey-eket engedélyezhetjük kódból is (a megfelelő form SetSoftkeyEnabled() függvényét kell meghívni), de egyszerűbb, ha a UI Builderben, a form tulajdonságainál igazra billentjük a Show Softkey0, illetve a Show Softkey1 flageket. Ez után a gombok tulajdonságait kell beállítgatnunk: a feliratot a SetSoftkeyText() függvénnyel írhatjuk át, az Action ID-t pedig a SetSoftkeyActionId() metódussal rendelhetjük a virtuális billentyűkhöz. Végül hozzá kell adnunk az ActionListenert a formunkhoz az AddSoftkeyActionListener() függvénnyel, és készen is vagyunk, már csak le kell kezelnünk az interakciót az OnActionPerformed() metódusban.

Utolsó feladatként implementálnunk kell a térkép nagyítását és kicsinyítését a megfelelő gombok hatására. Ehhez először engedélyeznünk kel la zommolást, amit az Osp::Locations::Controls::Map osztály egyik függvényével, a SetZoomEnabled() igazra állításával tehetjük meg. A nagyítási szintet a Map osztály SetZoomLevel() metódusával tehetjük meg, amely két bemenő paramétert vár: az egyik maga a nagyítási szint, amely egy float típus, ezt csökkentjük, illetve növeljük a megfelelő gomb hatására, érdemes felvenni tagváltozóként az osztályunkba. A függvény másik paramétere egy boolean, amely a nagyítási animációt indikálja, a dolog nem kimondottan látványos, de érdemes bekapcsolni a minimális eye-candy faktorért. A térkép zoom szintjének megváltoztatása után újra kell rajzolnunk azt a draw() metódussal, majd az egész formot is a RequestRedraw()-val.

A példakód természetesen ismét elérhető a Mobilarénás SVN fiókból, a Terkep nevű projektet kell kicheckelni. A következő bejegyzés során továbbra is a bada térképkezelési funkcióit fogjuk próbálgatni.

dr. Kind

Azóta történt

Előzmények