Užduotys mokiniams tema Programavimas mobiliesiems įrenginiams. 1 dalis

Size: px
Start display at page:

Download "Užduotys mokiniams tema Programavimas mobiliesiems įrenginiams. 1 dalis"

Transcription

1 Projektas,,Pedagogų kvalifikacijos tobulinimo ir perkvalifikavimo sistemos plėtra (III etapas), Nr. VP1-2.2-ŠMM-02-V Projekto vykdytojas Ugdymo plėtotės centras Stažuotės vieta UAB DEVBRIDGE LT Stažuotės vykdymo laikotarpis 2014 m. rugsėjo 1 d m. vasario 28 d. Stažuotojas Edita Vinčienė Stažuotojo vadovas (mentorius) Viktoras Gurgždys Užduotys mokiniams tema Programavimas mobiliesiems įrenginiams. 1 dalis Kaunas, 2015

2 Turinys Praktinis darbas Nr. 1 Pažintis su mobilių aplikacijų kūrimo programa Eclipse. Pirmoji programa... 3 Svarbiausi programos katalogai ir failai... 4 Programos paleidimas tikrame prietaise... 4 Programos paleidimas virtualiame prietaise... 5 Programos redagavimas... 6 Praktinis darbas Nr. 2 Pagrindiniai aplikacijos maketo objektai (tekstas ir mygtukas) ir jų savybės... 7 Praktinis darbas Nr. 3 Santykinio objektų išdėstymo aplikacijos maketas (RelativeLayout) Praktinis darbas Nr. 4 Linijinio objektų išdėstymo aplikacijos maketas (LinearLayout) Savarankiškas darbas Nr. 1 Linijinio objektų išdėstymo aplikacijos maketas (LinearLayout) Praktinis darbas Nr. 5 Stiliai Praktinis darbas Nr. 6 Lentelės maketas (TableLayout)

3 Praktinis darbas Nr. 1 Pažintis su mobilių aplikacijų kūrimo programa Eclipse. Pirmoji programa Darbo tikslas susipažinti su mobilių aplikacijų kūrimo programa Eclipse. Sukurti pirmąją programą ir išbandyti ją naudojant emuliatorių ir telefoną. Darbo eiga: 1. Paleiskite mobilių aplikacijų kūrimo programą Eclipse. 2. Kurkite pirmąjį savo projektą File New Android Application Project (Alt+Shift+N) 3. Suveskite pažymėtus laukus ir spauskite Next>: Programos pavadinimas, kuris matomas vartotojams. Projekto katalogo vardas ir Eclipse programoje matomas pavadinimas. Programos paketo pavadinimas. Tai unikalus programos kodas, susietas su jūsų įmonės domenu atvirkštine tvarka. Jis nėra rodomas vartotojui, ir turėtumėte jį naudoti visom savo kuriamom programom. Parenkame Android žemiausią versiją, kuriai tiks ši programa. Parenkame Android aukščiausią versiją, kuriai tiks ši programa. 4. Kitame lange nieko nekeiskite Next>. 5. Pasirinkite programos paleidimo piktogramą Next>. 6. Iš pateiktų lango šablonų pasirinkite Empty Activity (tuščias aktyvus langas) Next>. 7. Paskutiniame lange nieko nekeiskite Finish. Gavote pirmąją programą, kurioje parašyta Hello world! 3

4 Svarbiausi programos katalogai ir failai Prieš paleisdami savo pirmąją programą, jūs turėtumėte žinoti pagrindinius darbinius Android projekto katalogus ir failus: AndroidManifest.xml Šiame faile aprašomos pagrindinės jūsų kuriamos mobilios aplikacijos (app) savybės ir jų sudėtinės dalys. Vėlesnėse pamokose sužinosite kokios jos būna. Vienas iš svarbiausių elementų yra <uses-sdk>. Jis nustato jūsų mobilios aplikacijos suderinamumą su įvairiomis Android versijomis naudojant android:minsdkversion ir android:targetsdkversion atributus. Pirmajai jūsų mobiliai aplikacijai, jis turėtų atrodyti taip: <manifest xmlns:android=" > <uses-sdk android:minsdkversion="8" android:targetsdkversion="19" />... </manifest> src/ android:minsdkversion nurodo žemiausios Android versijos su kuria veiks programa, lygį. android:targetsdkversion reikėtų nustatyti kaip įmanoma aukštesnę. Pagrindinis Jūsų programos failų katalogas. Jame saugomas programos paleidžiamasis failas MainActivity.java kuris suaktyvinamas, kai jūs paleidžiate savo programą (app) naudodami paleidimo piktogramą. res/ Jame yra keli katalogai įvairiems programos ištekliams. Štai keletas jų: drawable-hdpi/ Grafinių objektų katalogas, kuriame saugomi grafiniai objektai (pavyzdžiui, paveikslai), kurie skirti didelio tankio (hdpi) ekranams (high-density screens). Kituose kataloguose yra ištekliai, skirti kitokiems ekranams. layout/ Katalogas kuriame talpinami mobilios aplikacijos maketų failai, kurie apibrėžia jūsų programos vartotojo sąsają. values/ Katalogas kitiems įvairiems XML failams, kuriuose saugomi mobilios aplikacijos duomenys (pvz. užrašai, spalvos, stiliai). Kai jūs sukursite ir paleisite savo pirmąją programą pasileis failas MainActivity.java, kuris nurodys užkrauti ekrane maketo failą activity_main.xml. Ekrane atsiras užrašas Hello world!. Šis vaizdas gal ir nėra labai įdomus, bet jis pateikiamas tam, kad jūs suprastumėte, kaip paleisti savo mobilią aplikaciją, prieš pradedant kurti didesnius projektus. Programos paleidimas tikrame prietaise Jei jūs turite programos testavimui prietaisą (telefoną su Android operacine sistema), tai: 1. Prijunkite prietaisą prie kompiuterio, naudodami USB laidą. Jei dirbate Windows aplinkoje, suinstaliuokite jūsų prietaiso tvarkykles. Pagalba OEM USB Drivers ( 2. Pakeiskite nustatymus: Nustatymai-Programos-Kūrimas-USB perkrova (Settings-Applications- Development-USB debugging). 4

5 Programos paleidimas virtualiame prietaise 1. Paleiskite telefono emuliatorių Android Virtual Device Manager (2 mygtukas). Ir pasirinkite Create 2. Užpildykite AVD kortelę: ir OK. 3. Paleiskite sukurtą prietaisą Start. Nurodykit ekrano dydį (Screen Size), pvz. 8 ir palaukite kol pasileis. Neišsigąskite, tai šiek tiek užtrunka., kol atsiras virtualaus telefono vaizdas: 4. Pasirinkite savo sukurtą programą ir Run. 5

6 Programos redagavimas 1. Pirmiausia patikrinkite ir nustatykite tinkamą kompiliatoriaus lygį. Pirmą kartą sukūrus programą jis dažniausiai būna API: 20, todėl pakeiskite jį į API: 19. (20 lygis skirtas laikrodžiams.) --> 2. Užrašas Hello world! saugomas išteklių faile res\values\strings.xml. Atidarę failą, jo apačioje paspauskite auselę su failo pavadinimu strings.xml. Taip pereisite į programos kodo redagavimo langą: 3. Suraskite reikiamą užrašą ir pakeiskite jį lietuvišku Sveikas pasauli!. Kad pamatytumėte pasikeitimus turite atnaujinti programą (Refresh). 4. Atlikdami tokius pačius veiksmus, pakeiskite maketo pavadinimą: <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">mano pirmoji programėlė</string> <string name="hello_world">sveikas pasauli!</string> </resources> 5. Išbandykite pakeistą programą emuliatoriuje (telefone). Pastaba: jei nepavyksta paleisti programos, ar pakoregavus vis užkraunama sena programos versija, pabandykite išvalyti projektų katalogus nuo nereikalingų failų: kairėj pusėj ant projekto refresh meniu Project Clean - Clean all projects. 6

7 Praktinis darbas Nr. 2 Pagrindiniai aplikacijos maketo objektai (tekstas ir mygtukas) ir jų savybės Darbo tikslas įterpti į mobilią aplikaciją tekstą ir mygtukus. Naudoti teksto formatavimo gaires ir jų atributus. Darbo eiga: 1. Programos kodo redagavimas a) Atverkite praeitą pamoką sukurtą programą PirmasisManoApp. (Arba pagal Praktinio darbo Nr.1 aprašymą sukurkite naują). b) Koreguosite mobilios aplikacijos maketo programos kodą. Tam lango apačioje pereikite iš grafinio vaizdo lango į programos kodo langą: Spaudžiate čia --> c) pagal pavyzdį pakeiskite programos kodą: ištrinkite visus <TextView> elementus (ekrane nelieka jokio teksto) ir pakeiskite <RelativeLayout> į <LinearLayout>. įterpkite android:orientation atributą, nurodydami jam horizontalią poziciją. Failas turi atrodyti taip: <LinearLayout xmlns:android=" xmlns:tools=" android:orientation="horizontal" > </LinearLayout> 7

8 2. Tekstinio lauko (EditText) sukūrimas a) Norėdami, sukurti vartotojo keičiamą tekstinį lauką, bloko <LinearLayout> viduje pridėkite <EditText> elementą: <EditText /> Naudojamų atributų aprašymas: android:id Sukuriamas unikalus identifikatorius. yra būtinas, kai naudojate kokį nors objektą iš XML, jis nurodo ištekliaus tipą (id - šiame pavyzdyje, ir po jo seka ištekliaus vardas (edit_message šiame pvz.). Ištekliaus vardą galite sugalvoti patys kokį norite, svarbu kad vardo reikšmė būtų susijusi su objektu. + prieš ištekliaus vardą reikalingas tik tada, kai tipas apibrėžiamas pirmą kartą. android:layout_width Lango plotis ir aukštis. android: layout_height Reikšmė "match_parent" ir "fill_parent" užims visą langą iki paraščių. Reikšmė "wrap_content" užims tik tiek, kiek bus suvesta teksto. android:hint Tai numatytoji eilutė, kuri matoma, kol teksto laukas yra tuščias. Naudojamas vienodas pavadinimas (edit_message) nesukelia problemų. Pastaba: jei įdėjus teksto lauką jo jums nerodo, o meta klaidą Exception raised during rendering: java.lang.system.arraycopy([ci[cii)v pasitikrinkite, ar teisingai parinkta Android versija kompiliatoriuje, nes greičiausia bus parinkta Android 4.4W, kuri skirta laikrodžiams ir nepalaiko teksto įvedimo. Žiūrėti čia 3. Eilutės išteklių failo redagavimas a) Naudodami programoje tekstą, geriausia kiekvieną eilutę aprašyti teksto išteklių faile res\values\strings.xml. Tada bus lengviau rasti ir atnaujinti tekstą, taip pat galima bus versti mobilią aplikaciją į kitą kalbą. Pridėkite naują eilutę "edit_message" ir nurodykite jai reikšmę Įveskite tekstą. (Galite ištrinti "hello_world" eilutę.) b) Kadangi jūs redaguojate šį failą, tai pridėkite Siųsti eilutę mygtukui, pavadintam "button_send". Dabar failas strings.xml atrodo taip: <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">pirmasis mano App</string> <string name="edit_message">įveskite tekstą</string> <string name="button_send">siųsti</string> <string name="action_settings">settings</string> <string name="title_activity_main">mainactivity</string> </resources> 8

9 4. Mygtuko sukūrimas a) Pridėkite mygtuką į kuriamą maketą activity_main.xml: /> Aukštis ir plotis yra nurodyti "wrap_content", todėl mygtuko plotis priklauso nuo jame parašyto teksto. Šiam mygtukui nebūtina nurodyti android:id atributo. Gavote tokį vaizdą: 5. Teksto įvedimo laukas per visą ekrano plotį a) Teksto įvedimo laukas vizualiai yra per mažas. Todėl padidinkite jį praplėsdami iki pat krašto. Tai padarysite panaudodami android:layout_weight atributą. Šio atributo savybė yra skaičius, kuris nurodo esančių objektų proporciją erdvėje. Pavyzdžiui, jei vienam objektui suteiksite svorį - 2, o kitam - 1, tai reiškia, kad pirmas vaizdas užpildo 2/3 likusio ploto ir antras vaizdas užpildo 1/3 likusio ploto. Jei pridėsite dar vieną objektą su svoriu - 1, tai pirmas vaizdas užpildys 2/4 likusio ploto ir antras ir trečias vaizdas užpildys po 1/4 likusio ploto. Pagal nutylėjimą ši reikšmė visiems objektams būna 0. <EditText... /> b) Siekiant pagerinti išdėstymo efektyvumą, jei objektams nurodėte svorį (android:layout_weight), turite pakeisti android:layout_width atributo reikšmę į nulį (0dp). <EditText android:layout_width="0dp"... /> 9

10 Jūsų sukurto failo activity_main.xml visas programos kodas: 10

11 Praktinis darbas Nr. 3 Santykinio objektų išdėstymo aplikacijos maketas (RelativeLayout) Darbo tikslas sukurti mobilią aplikaciją, kurioje vaizdo objektams išdėstyti naudojamas santykinio objektų išdėstymo maketas (RelativeLayout). Darbo eiga: Šioje pamokoje sukursite prisijungimo prie facebook langą, vaizdo objektus dėstysite naudodami RelativeLayout maketą. 1. Turite aktyvaus lango pavyzdį. Pažiūrėkite, kokios dalys jį sudaro: a) Teksto dėžutė (TextView), sulygiuota prie viršaus, dešinės ir kairės pusių: b) Teksto dėžutė (TextView), einanti po prieš tai buvusio objekto, sulygiuota prie kairės pusės: c) Teksto įvedimo laukas (EditText), einantis po prieš tai buvusio objekto, sulygiuotas prie kairės ir dešinės pusių: 11

12 d) kartojami jau buvę laukai. e) Žymės langelis (CheckBox) ir apačioje prilyginta teksto dėžutė (TextView). 2. Kurkite naują projektą: 3. Failo activity_main.xml programos kodą pakeiskite pagal RelativeLayout maketą: <RelativeLayout xmlns:android=" xmlns:tools=" tools:context="${relativepackage.${activityclass" > </RelativeLayout> 12

13 4. Į šį maketą eilės tvarka sukelkite visus jau išvardintus objektus su jų savybėmis: <RelativeLayout xmlns:android=" xmlns:tools=" tools:context="${relativepackage.${activityclass" > <TextView android:layout_alignparentleft="true" android:layout_alignparentright="true" android:layout_alignparenttop="true" android:text="facebook" /> <TextView android:layout_alignparentleft="true" android:text=" " /> <EditText android:layout_alignparentleft="true" android:layout_alignparentright="true" > <requestfocus /> </EditText> <TextView android:layout_alignparentleft="true" android:text="password" /> <EditText android:inputtype="textpassword" android:layout_alignparentleft="true" android:layout_alignparentright="true" > </EditText> <CheckBox android:layout_alignparentleft="true" android:checked="true" android:text="save Login" /> <TextView android:layout_alignparentbottom="true" android:layout_alignparentleft="true" android:layout_alignparentright="true" android:text="need an account? \n Sign up using your phone" /> </RelativeLayout> 13

14 Darbe aprašytos dvi naujos, dar nematytos eilutės: slaptažodžio įvedimui android:inputtype="textpassword" žymės langelio varnelės uždėjimui android:checked="true" Taip pat teksto dalinimui eilutėmis panaudota komanda \n android:text="need an account? \n Sign up using your phone" 5. Toliau kiekvienam įkeltam objektui suteikite šriftų, spalvų, išlyginimo savybes. a) Objekto teksto išdėstymas centre: android:gravity="center" b) Viso maketo spalva: android:background="#25c" c) Objekto teksto spalva: android:textcolor="#fff" d) Objekto teksto dydis: android:textsize="30sp" android:textsize="16sp" e) Objekto teksto pastorinimas: android:textstyle="bold" f) Objekto paraštės: android:layout_marginleft="10dp" android:layout_marginright="10dp" android:layout_margintop="10dp" viršutiniam objektui android:layout_marginbottom="20dp" apatiniam objektui g) Tarpai tarp objektų: android:padding="2dp" Gautas rezultatas: Norimas gauti vaizdas: 14

15 Visas *.xml failas: <RelativeLayout xmlns:android=" oid" xmlns:tools=" android:background="#25c" tools:context="${relativepackage.${activityclass" > <TextView android:gravity="center" android:textcolor="#fff" android:textsize="30sp" android:textstyle="bold" android:layout_margintop="10dp" android:layout_alignparentleft="true" android:layout_alignparentright="true" android:layout_alignparenttop="true" android:text="facebook" /> <TextView android:textcolor="#fff" android:textsize="16sp" android:textstyle="bold" android:layout_marginleft="10dp" android:padding="2dp" android:layout_alignparentleft="true" android:text=" " /> <EditText android:layout_marginleft="10dp" android:layout_marginright="10dp" android:background="#fff" android:layout_alignparentleft="true" android:layout_alignparentright="true" > <requestfocus /> </EditText> <TextView android:textcolor="#fff" android:layout_marginleft="10dp" android:padding="2dp" android:textsize="16sp" android:textstyle="bold" android:layout_alignparentleft="true" android:text="password:" /> <EditText android:layout_marginleft="10dp" android:layout_marginright="10dp" android:inputtype="textpassword" android:background="#fff" android:layout_alignparentleft="true" android:layout_alignparentright="true" </EditText> <CheckBox android:textcolor="#fff" android:layout_alignparentleft="true" android:checked="true" android:text="save Login" /> <TextView android:gravity="center" android:textcolor="#fff" android:layout_marginbottom="20dp" android:layout_alignparentbottom="true" android:layout_alignparentleft="true" android:layout_alignparentright="true" android:text="need an account? \n Sign up using your phone" /> </RelativeLayout 15

16 Praktinis darbas Nr. 4 Linijinio objektų išdėstymo aplikacijos maketas (LinearLayout) Darbo tikslas sukurti mobilią aplikaciją, kurioje vaizdo objektams išdėstyti naudojamas linijinio objektų išdėstymo maketas (LinearLayout). Pasiruošimo darbai Šioje pamokoje kursite skaičiuotuvo vaizdą. Vaizdo objektus dėstysite naudodami LinearLayout maketą. 1. Turite skaičiuotuvo lango pavyzdį: 2. Išdalinkite skaičiuotuvą į atskirus blokus. Pagrindiniai blokai bus šie: Raudonas; Rudas; Žalias; 3. Pasmulkinkite blokus, kuriuos sudaro keletas dalių: 4. Apjunkite kelis blokus į vieną: 16

17 5. Taip gavote visą skaičiuotuvo schemą: Štai tiek maketų reikia, norint suprogramuoti šitą vaizdą. Tačiau, jei jūs sugebėsite tai padaryti, tai jūs sugebėsite suprogramuoti, bet kokią vartotojo sąsają. Jei skaičiuotuvas bus stačioje pozicijoje, jis turėtų atrodyti taip: 17

18 Darbo eiga: 1. Apgalvokite kokių maketų jums reikės pirmiausia: Raudonas blokas visas maketas kuriamas raudoname fone; Didelis žalias blokas HorizontalLayout; Didelis rudas blokas HorizontalLayout; 1 oranžinis blokas VerticalLayout; 2 oranžinis blokas VerticalLayout; Alyvinis blokas VerticalLayout; 2. Kurkite naują projektą: Pradinis activity_calc.xml failas: <LinearLayout xmlns:android=" xmlns:tools=" tools:context="${relativepackage.${activityclass" > </LinearLayout> 3. Pridėkite vertikalią maketo orientaciją, raudoną fono spalvą ir suteikite maketui identifikaciją (ID): <LinearLayout xmlns:android=" xmlns:tools=" android:id="@+id/raudonasblokas" android:orientation="vertical" android:background="#f00" tools:context="${relativepackage.${activityclass" > </LinearLayout> 18

19 4. Kadangi kursite skaičiuotuvą gulsčiam ekranui, tai ekrane matomą šabloną tai pat paverskite gulsčiai. Tai padaryti galima meniu juostos mygtuku. Mygtukas vaizdo pasukimui 5. Į jau turimą raudonos spalvos maketą įkelkite kitą maketą (Layouts) iš paruoštų maketų sąrašo LinearLayout (Horizontal): Jums reikalingas maketas 6. Į maketą įkelkite teksto įvedimo lauką (EditText) ir mygtuką (Button). Nustatykite objektų savybes ir maketo spalvą: <LinearLayout android:background="#0f0" > <EditText > </EditText> android:text="x" /> </LinearLayout> 19

20 7. Pabandykite toliau savarankiškai (nežiūrėdami į žemiau esantį programos kodą) pagal turimą projektą į raudono maketo vidų įkelti rudą maketą (vertikali orientacija). 8. Nurodykite žalio ir rudo maketo proporcijas (layout_weight) 3:7 ir pakeiskite abiejų maketų aukštį (layout_height) į 0dp. Ruda spalva #c63. Gautas rezultatas: <LinearLayout android:layout_height="0dp" android:layout_weight="3" android:background="#0f0" > <EditText > </EditText> android:text="x" /> </LinearLayout> <LinearLayout android:orientation="vertical" android:layout_height="0dp" android:layout_weight="7" android:background="#c63" > </LinearLayout> 20

21 9. Viduje rudo maketo iš karto įkelkite tris vertikalius maketus. Nustatykite jiems ID, spalvas, plotį, aukštį, santykį 11:21. Gautas rezultatas: <LinearLayout android:orientation="horizontal" android:layout_height="0dp" android:layout_weight="7" android:background="#c63" > <LinearLayout android:orientation="vertical" android:layout_weight="5" android:layout_width="0dp" android:background="#fb0" > </LinearLayout> <LinearLayout android:orientation="vertical" android:layout_weight="5" android:layout_width="0dp" android:background="#fe0"> </LinearLayout> <LinearLayout android:orientation="vertical" android:layout_weight="21" android:layout_width="0dp" android:background="#f06"> </LinearLayout> </LinearLayout> 21

22 10. Oranžiniuose maketuose sudėliokite reikalingų veiksmų mygtukus. 11. Padarykite paraštes rudajame makete dešinėje, kairėje, apačioje, oranzinisblokas2 makete paraštę dešinėje. Reikalingus ženklus įkelkite pagal jų kodus: π Alt+227 Alt+251 <LinearLayout android:orientation="vertical" android:layout_weight="5" android:layout_width="0dp" android:background="#fb0" > android:layout_height="0dp" android:text="sin" /> android:layout_height="0dp" android:text="cos" /> android:layout_height="0dp" android:text="tan" /> android:layout_height="0dp" android:text="π" /> android:layout_height="0dp" android:text="!" /> </LinearLayout> <LinearLayout android:orientation="vertical" android:layout_weight="5" android:layout_width="0dp" android:layout_marginright="10dp" android:background="#fe0"> android:layout_height="0dp" android:text="ln" /> android:layout_height="0dp" android:text="log" /> android:layout_height="0dp" android:text="e" /> android:layout_height="0dp" android:text="^" /> android:layout_height="0dp" android:text=" " /> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_height="0dp" android:layout_weight="7" android:layout_marginleft="10dp" android:layout_marginright="10dp" android:layout_marginbottom="10dp" android:background="#c63" > 22

23 Savarankiškas darbas Nr. 1 Linijinio objektų išdėstymo aplikacijos maketas (LinearLayout) Darbo tikslas sukurti mobilią aplikaciją, kurioje vaizdo objektams išdėstyti naudojamas linijinio objektų išdėstymo maketas (LinearLayout). Makete sudėti mygtukus, tekstą, panaudoti jų formatavimo gaires ir atributus. Šią pamoką, toliau kursite skaičiuotuvo dešinės pusės mygtukus. Siūlomas maketų ir mygtukų išdėliojimo planas: Visi objektai aprašomi alyvinio bloko viduje. Dirbate savarankiškai. 23

24 Darbo eiga: 1. Pradedate nuo horizontalaus maketo zalsvasblokas1 įkėlimo: 2. Pridedate kitą maketą zalsvasblokas2: Alt Įkeliate mėlyną horizontalų maketą melynasblokas: 24

25 4. Mėlyno bloko viduje įkeliate vertikalų rusvą maketą rusvasblokas ir mygtuką: 5. Rusvo bloko viduje įkeliate du horizontalius maketus - zalsvasblokas3 ir zalsvasblokas4: 25

26 Darbo patikrinimui (mokytojai) arba pasitikrinimui (mokiniams) pridedami programos kodai XML kalba: 1. <LinearLayout android:orientation="horizontal" android:layout_height="0dp" android:background="#9f3"> android:layout_width="0dp" android:text="7" /> android:layout_width="0dp" android:text="8" /> android:layout_width="0dp" android:text="9" /> android:layout_width="0dp" android:text=" " /> android:layout_width="0dp" android:text="(" /> </LinearLayout> 2. <LinearLayout android:orientation="horizontal" android:layout_height="0dp" android:background="#9f3"> android:layout_width="0dp" android:text="4" /> android:layout_width="0dp" android:text="5" /> android:layout_width="0dp" android:text="6" /> android:layout_width="0dp" android:text="x" /> android:layout_width="0dp" android:text=")" /> </LinearLayout> 26

27 3. 4. <LinearLayout android:orientation="horizontal" android:layout_weight="2" android:layout_height="0dp" android:background="#69f"> </LinearLayout> <LinearLayout android:orientation="vertical" android:layout_weight="4" android:layout_width="0dp" android:background="#c96"> </LinearLayout> android:layout_width="0dp" android:text="=" /> 5. <LinearLayout android:orientation="horizontal" android:layout_height="0dp" android:background="#9f3"> android:layout_width="0dp" android:text="1" /> android:layout_width="0dp" android:text="2" /> android:layout_width="0dp" android:text="3" /> android:layout_width="0dp" <LinearLayout android:orientation="horizontal" android:layout_height="0dp" android:background="#9f3"> android:layout_weight="2" android:layout_width="0dp" android:text="0" /> android:layout_width="0dp" android:text="." /> android:layout_width="0dp" android:text="+" /> </LinearLayout> </LinearLayout> android:text="-" /> 27

28 Visas *.xml failas: <LinearLayout xmlns:android=" xmlns:tools=" android:background="#f00" android:orientation="vertical" tools:context="${relativepackage.${activityclass" > <!-- pradzia teksto ivedimo bloko (zalias), kuris yra raudono bloko viduje --> <LinearLayout android:layout_height="0dp" android:layout_weight="3" android:background="#0f0" > <EditText > </EditText> android:text="«" /> </LinearLayout> <!-- pabaiga teksto ivedimo bloko (zalias) --> <!-- pradzia veiksmu mygtuku bloko (rudas), kuris yra raudono bloko viduje --> <LinearLayout android:orientation="horizontal" android:layout_height="0dp" android:layout_weight="7" android:layout_marginleft="10dp" android:layout_marginright="10dp" android:layout_marginbottom="10dp" android:background="#c63" > <!-- pradzia pirmo veiksmu mygtuku stulpelio bloko (oranzinis1), kuris yra rudo bloko viduje --> <LinearLayout android:orientation="vertical" android:layout_weight="5" android:layout_width="0dp" android:background="#fb0" > android:layout_height="0dp" android:text="sin" /> android:layout_height="0dp" android:text="cos" /> android:layout_height="0dp" android:text="tan" /> android:layout_height="0dp" android:text="π" /> android:layout_height="0dp" android:text="!" /> 28

29 </LinearLayout> <!-- pabaiga pirmo veiksmu mygtuku stulpelio bloko (oranzinis1) --> <!-- pradzia antro veiksmu mygtuku stulpelio bloko (oranzinis2), kuris yra rudo bloko viduje --> <LinearLayout android:orientation="vertical" android:layout_weight="5" android:layout_width="0dp" android:layout_marginright="10dp" android:background="#fe0"> android:layout_height="0dp" android:text="ln" /> android:layout_height="0dp" android:text="log" /> android:layout_height="0dp" android:text="e" /> android:layout_height="0dp" android:text="^" /> android:layout_height="0dp" android:text=" " /> </LinearLayout> <!-- pabaiga antro veiksmu mygtuku stulpelio bloko (oranzinis2) --> <!-- pradzia dešinės pusės veiksmu mygtuku stulpelio bloko (alyvinis), kuris yra rudo bloko viduje --> <LinearLayout android:orientation="vertical" android:layout_weight="21" android:layout_width="0dp" android:background="#f06"> <!-- pradzia 7, 8, 9,, ( veiksmu mygtuku eilutes bloko (zalsvas1), kuris yra alyvinio bloko viduje --> <LinearLayout android:id="@+id/zalsvasblokas1" android:orientation="horizontal" android:layout_height="0dp" android:background="#9f3"> android:layout_width="0dp" android:text="7" /> android:layout_width="0dp" android:text="8" /> android:layout_width="0dp" android:text="9" /> android:layout_width="0dp" 29

30 android:text=" " /> android:layout_width="0dp" android:text="(" /> </LinearLayout> <!-- pabaiga 7, 8, 9,, ( veiksmu mygtuku eilutes bloko (zalsvas1) --> <!-- pradzia 4, 5, 6, x, ) veiksmu mygtuku eilutes bloko (zalsvas2), kuris yra alyvinio bloko viduje --> <LinearLayout android:id="@+id/zalsvasblokas2" android:orientation="horizontal" android:layout_height="0dp" android:background="#9f3"> android:layout_width="0dp" android:text="4" /> android:layout_width="0dp" android:text="5" /> android:layout_width="0dp" android:text="6" /> android:layout_width="0dp" android:text="x" /> android:layout_width="0dp" android:text=")" /> </LinearLayout> <!-- pabaiga 4, 5, 6, x, ) veiksmu mygtuku eilutes bloko (zalsvas2) --> <!-- pradzia 1, 2,... veiksmu mygtuku bloko (melynas), kuris yra alyvinio bloko viduje --> <LinearLayout android:id="@+id/melynasblokas" android:orientation="horizontal" android:layout_weight="2" android:layout_height="0dp" android:background="#69f"> <!-- pradzia 1, 2, 3, -, 0,., + veiksmu mygtuku bloko (rusvas), kuris yra melyno bloko viduje --> <LinearLayout android:id="@+id/rusvasblokas" android:orientation="vertical" android:layout_weight="4" android:layout_width="0dp" android:background="#c96"> <!-- pradzia 1, 2, 3, - veiksmu mygtuku eilutes bloko (zalsva3), kuris yra rusvo bloko viduje --> <LinearLayout android:id="@+id/zalsvasblokas3" android:orientation="horizontal" android:layout_height="0dp" android:background="#9f3"> 30

31 android:layout_width="0dp" android:text="1" /> android:layout_width="0dp" android:text="2" /> android:layout_width="0dp" android:text="3" /> android:layout_width="0dp" android:text="-" /> </LinearLayout> <!-- pabaiga 1, 2, 3, - veiksmu mygtuku eilutes bloko (zalsva3) --> <!-- pradzia 0,., +, - veiksmu mygtuku eilutes bloko (zalsva4), kuris yra rusvo bloko viduje --> <LinearLayout android:id="@+id/zalsvasblokas4" android:orientation="horizontal" android:layout_height="0dp" android:background="#9f3"> android:layout_weight="2" android:layout_width="0dp" android:text="0" /> android:layout_width="0dp" android:text="." /> android:layout_width="0dp" android:text="+" /> </LinearLayout> <!-- pabaiga 0,., +, - veiksmu mygtuku eilutes bloko (zalsva4) --> </LinearLayout> <!-- pabaiga 1, 2, 3, -, 0,., + veiksmu mygtuku bloko (rusvas) --> android:layout_width="0dp" android:text="=" /> </LinearLayout> <!-- pabaiga 1, 2,... veiksmu mygtuku bloko (melynas) --> </LinearLayout> <!-- pabaiga dešinės pusės veiksmu mygtuku stulpelio bloko (alyvinis) --> </LinearLayout> <!-- pabaiga veiksmu mygtuku bloko (rudas) --> </LinearLayout> 31

32 Praktinis darbas Nr. 5 Stiliai Darbo tikslas aprašyti ir pritaikyti vartotojo sąsajos elementams stilius. Darbo eiga: Šioje pamokoje pabaigsite kurti skaičiuotuvą, parinkdami spalvas, paraštes, teksto savybes. Žiūrėdami į skaičiuotuvo maketą, matote, kad teksto spalva yra balta, veiksmų mygtukų spalvos yra šviesiai ir tamsiai pilka. 1. Aprašykite stilių faile res/values/styles.xml sukurdami savo stilių dešinėje pusėje esantiems mygtukams: <style name="manostilius"> <item name="android:textcolor">#fff</item> <item name="android:background">#333</item> <item name="android:textsize">15sp</item> </style> 2. Kiekvieno mygtuko aprašyme pridėkite eilutę, nurodančią naudoti šį stilių. style="@style/manostilius" Pavyzdžiui: android:layout_height="0dp" style="@style/manostilius" android:text="sin" /> 3. Dešinėje pusėje esančių mygtukų stilius panašus, tačiau tekstas didesnis. Todėl kuriame antrą stilių ir pritaikome jį. Pasitikriname: <style name="manostilius2"> <item name="android:textcolor">#fff</item> <item name="android:background">#333</item> <item name="android:textsize">25sp</item> </style> 4. Centre esantiems mygtukams kuriame trečią stilių, keisdami fono spalvą: <style name="manostilius3"> <item name="android:textcolor">#fff</item> <item name="android:background">#666</item> <item name="android:textsize">25sp</item> </style> 32

33 5. Pakeiskite pagrindinio maketo spalvą iš raudonos į juodą android:background="#000" ir uždėkite paraštes dideliame žaliame bloke android:layout_margin="10dp" 6. Teksto įvedimo lauką ir mygtuką patalpinkite centre android:layout_gravity="center" ir nurodykite jiems abiems santykį 14:1, kad mygtukas būtų didesnis 7. Visą didelį žalią maketą nudažykite juodai. 8. Praplėskite mygtuką iki paraščių 9. Papildomai uždėkite vidines paraštes android:padding="10dp" <LinearLayout android:layout_height="0dp" android:layout_weight="3" android:background="#000" android:layout_margin="10dp" android:padding="10dp"> 10. Tarp visų mygtukų taip pat reikia padaryti tarpus. android:layout_margin="2dp" Pavyzdžiui: android:layout_height="0dp" android:layout_margin="2dp" android:text="sin" /> 11. Visų likusių maketų spalvą pakeiskite juoda arba visai ištrinkite tas eilutes apie spalvą. 33

34 Praktinis darbas Nr. 6 Lentelės maketas (TableLayout) Darbo tikslas įterpti į mobilią aplikaciją lentelę, panaudojant lentelės maketą (TableLayout), ją formatuoti. Darbo eiga: 1. Kurkite naują projektą: --> 2. Iš siūlomų maketų sąrašo faile activity_main.xml, viduje RelativeLayout maketo įkelkite lentelės maketą: <RelativeLayout xmlns:android=" xmlns:tools=" tools:context="${relativepackage.${activityclass" > <TableLayout android:layout_alignparentleft="true" android:layout_alignparenttop="true" android:layout_marginleft="20dp" android:layout_margintop="20dp" > <TableRow android:id="@+id/tablerow1" > </TableRow> <TableRow android:id="@+id/tablerow2" > </TableRow> <TableRow android:id="@+id/tablerow3" > </TableRow> <TableRow android:id="@+id/tablerow4" > </TableRow> </TableLayout> </RelativeLayout> 34

35 Lentelę sudaro 4 eilutės, tačiau jose nėra jokio teksto, todėl lentelės ekrane nematome. 3. Tekstas lentelėje formuojamas įkeliant teksto lauką <TextView>. Kiek teksto laukų bus įkelta į vieną eilutę, tiek lentelėje bus stulpelių. Įkelkite du didelio teksto laukus į pirmą lentelės eilutę, tekstą lygiuokite stulpelio centre: <TableRow android:id="@+id/tablerow1" > <TextView android:textappearance="?android:attr/textappearancelarge" android:gravity="center" android:text="pamoka" /> <TextView android:textappearance="?android:attr/textappearancelarge" android:gravity="center" android:text="laikas" /> </TableRow> 4. Tokiu pačiu principu suformuokite visą lentelę. Uždėkite lentelei foną. Tekstas geriau bus skaitomas nuspalvinus kas antrą lentelės eilutę panašaus atspalvio spalvomis. <RelativeLayout xmlns:android=" xmlns:tools=" tools:context="${relativepackage.${activityclass" > <TableLayout android:layout_alignparentleft="true" android:layout_alignparenttop="true" android:layout_marginleft="20dp" android:layout_margintop="20dp" > <TableRow android:id="@+id/tablerow1" android:background="#ffff99" > <TextView android:textappearance="?android:attr/textappearancelarge" android:gravity="center" android:text="pamoka" /> <TextView android:textappearance="?android:attr/textappearancelarge" android:gravity="center" android:text="laikas" /> </TableRow> <TableRow android:id="@+id/tablerow2" android:background="#ffffcc" > <TextView android:textappearance="?android:attr/textappearancelarge" android:gravity="center" android:text="1" /> <TextView android:textappearance="?android:attr/textappearancelarge" android:gravity="center" android:text="8:00-8:45" /> </TableRow> <TableRow android:id="@+id/tablerow3" android:background="#ffff99" > 35

36 <TextView android:textappearance="?android:attr/textappearancelarge" android:gravity="center" android:text="2" /> <TextView android:textappearance="?android:attr/textappearancelarge" android:gravity="center" android:text="8:55-9:40" /> </TableRow> <TableRow android:background="#ffffcc" > <TextView android:textappearance="?android:attr/textappearancelarge" android:gravity="center" android:text="3" /> <TextView android:textappearance="?android:attr/textappearancelarge" android:gravity="center" android:text=" 9:50-10:35" /> </TableRow> <TableRow android:background="#ffff99" > <TextView android:textappearance="?android:attr/textappearancelarge" android:gravity="center" android:text="4" /> <TextView android:textappearance="?android:attr/textappearancelarge" android:gravity="center" android:text="11:05-11:50" /> </TableRow> <TableRow android:background="#ffffcc" > <TextView android:textappearance="?android:attr/textappearancelarge" android:gravity="center" android:text="5" /> <TextView android:textappearance="?android:attr/textappearancelarge" android:gravity="center" android:text="12:00-12:45" /> </TableRow> <TableRow android:background="#ffff99" > <TextView android:textappearance="?android:attr/textappearancelarge" android:gravity="center" android:text="6" /> <TextView android:textappearance="?android:attr/textappearancelarge" android:gravity="center" android:text="12:55-13:40" /> </TableRow> <TableRow android:background="#ffffcc" > <TextView android:textappearance="?android:attr/textappearancelarge" 36

37 android:gravity="center" android:text="7" /> <TextView android:textappearance="?android:attr/textappearancelarge" android:gravity="center" android:text="13:50-14:35" /> </TableRow> </TableLayout> </RelativeLayout> 37

38 Turinys Praktinis darbas Nr. 7 Grafinės informacijos paruošimas... 3 Praktinis darbas Nr. 8 Mobilios aplikacijos su tekstu ir paveikslu kūrimas... 4 Savarankiškas darbas Nr. 2 Mobilios aplikacijos su tekstu ir paveikslu kūrimas... 6 Praktinis darbas Nr. 9 Meniu juostos konfigūravimas

39 Praktinis darbas Nr. 7 Grafinės informacijos paruošimas Darbo tikslas grafikos rengykle sukurti piešinį ir jį paruošti naudojimui mobilioje aplikacijoje. Darbo eiga: 1. Grafikos rengykle (pvz. Paint) nupieškite paveiksliuką 300x300, panašų į žemiau pateiktą ir išsaugokite į savo sukurtą katalogą pavadinimu 1labas.png 2. Nupieštą paveikslėlį atverkite su Microsoft Office Picture Manager programa ir komandomis Edit Pictures... Resize nurodykite naują dydį 200x200, išsaugokite (File Save as...) pavadinimu 2labas.png 3. Neužverdami Microsoft Office Picture Manager programos, tą patį paveikslėlį redaguokite ir pakeiskite jo dydį į 150x150, išsaugokite (File Save as...) pavadinimu 3labas.png 4. Neužverdami Microsoft Office Picture Manager programos, tą patį paveikslėlį redaguokite ir pakeiskite jo dydį į 100x100, išsaugokite (File Save as...) pavadinimu 4labas.png Čia įvedate naują dydį Čia matote kaip jis pasikeitė Tokiu būdu paruošėte 4 skirtingo dydžio, panašaus pavadinimo paveikslėlius, kuriuos kitą pamoką panaudosite kurdami mobilią aplikaciją su tekstu ir paveiksliuku. 3

40 Praktinis darbas Nr. 8 Mobilios aplikacijos su tekstu ir paveikslu kūrimas Darbo tikslas įterpti į mobilią aplikaciją tekstą ir paveikslus. Naudoti paveikslų formatavimo gaires ir jų atributus, nustatyti teksto ir paveikslo tarpusavio ryšį. Darbo eiga: 1. Kurkite naują mobilią aplikaciją 2. Ištrinkite teksto eilutes xml faile ir pridėkite vidines paraštes (padding): <RelativeLayout xmlns:android=" xmlns:tools=" android:padding="20dp" tools:context="com.example.helloworldimage.helloworldimageactivity" > </RelativeLayout> 3. Praeitą pamoką png formatu nupieštus paveikslėlius patalpinkite į atitinkamą drawable katalogą. (Labai atidžiai žiūrėkite į kurį ir nepamirškite pavadinime ištrinti skaičius.) x300 xxhdpi, x200 xhdpi, x150 hdpi, x100 mdpi Įkėlę paveiksliukus atnaujinkite projektą (refresh). 5. Į mobilios aplikacijos maketo failą activity.xml įkelkite komandas, kurios parodys paveiksliuką ekrane: <ImageView android:id="@+id/imageview" android:src="@drawable/labas" /> 4

41 Visas activity.xml failas: <RelativeLayout xmlns:android=" xmlns:tools=" android:padding="20dp" tools:context="com.example.helloworldimage.helloworldimageactivity" > <ImageView /> </RelativeLayout> 6. Testuokite programą, matysite vaizdą: Šiuo atveju paveiksliukas gavosi nedidelis. 7. Nustatykite paveiksliuko aukštį ir plotį fill_parent, kad paveiksliuką išplėstų per visą ekraną. Vidines paraštes (padding) taip pat galite nuimti. <RelativeLayout xmlns:android=" xmlns:tools=" tools:context="com.example.helloworldimage.helloworldimageactivity" > <ImageView android:layout_width="fill_parent" android:layout_height="fill_parent" /> </RelativeLayout> Turite matyti tokį vaizdą: 5

42 Savarankiškas darbas Nr. 2 Mobilios aplikacijos su tekstu ir paveikslu kūrimas Darbo tikslas įterpti į mobilią aplikaciją tekstą ir paveikslus. Naudoti paveikslų formatavimo gaires ir jų atributus, nustatyti teksto ir paveikslo tarpusavio ryšį. Užduotis: sukurkite kelias mobilias aplikacijas, kuriose panaudokite paveikslėlį ir tekstą kartu, keisdami jų išdėstymo būdą. 1. Tekstas viršuje mažas paveikslėlis apačioje: 2. Mažas paveikslėlis viršuje tekstas apačioje: 3. Tekstas viršuje didelis paveikslas apačioje: 4. Didelis paveikslas viršuje tekstas apačioje: Tekstas parašytas res/values/strings.xml faile: <string name="hello_world">ir vėl išaušo nauja diena!</string> 6

43 7 Atsakymas: 1. <RelativeLayout xmlns:android=" xmlns:tools=" android:padding="20dp" tools:context="com.example.helloworldimage.helloworldimageactivity" > <TextView /> <ImageView /> </RelativeLayout> 2. <TextView android:paddingtop="10dp" /> <ImageView /> 3. <RelativeLayout xmlns:android=" xmlns:tools=" android:padding="20dp" tools:context="com.example.helloworldimage.helloworldimageactivity" > <TextView /> <ImageView android:layout_width="fill_parent" android:layout_height="fill_parent" /> </RelativeLayout> 4. <TextView android:layout_alignparentbottom="true" /> <ImageView android:layout_width="fill_parent" android:layout_height="fill_parent" />

44 Praktinis darbas Nr. 9 Meniu juostos konfigūravimas Darbo tikslas konfigūruoti mobilios aplikacijos meniu juostą, įkelti į ją tekstą, grafinius objektus. Darbo eiga: 1. Kurkite naują mobilią aplikaciją: 2. Koreguokite failą res/menu/meniu.xml, šalia jau esančio nustatymų užrašo pridėdami dar vieną - užrašą apie paiešką. <menu xmlns:android=" xmlns:app=" xmlns:tools=" tools:context="com.example.menujuosta.mainactivity" > <item android:id="@+id/action_search" android:orderincategory="100" android:title="@string/action_search" app:showasaction="ifroom"/> Įrašome šitą bloką </menu> <item android:id="@+id/action_settings" android:orderincategory="100" android:title="@string/action_settings" app:showasaction="never"/> 3. Koreguokite res/values/strings.xml failą, įrašydami eilutę: <string name="action_search">paieška</string> 4. Testuokite programą, emuliatoriuje turėtumėte matyti tokį vaizdą: Užrašas PAIEŠKA matomas, o SETTINGS ne 5. Pakeiskite: <item android:id="@+id/action_settings" android:orderincategory="100" android:title="@string/action_settings" app:showasaction="ifroom"/> Vietoje never įrašom ifroom 8

45 Dabar užrašas SETTINGS matomas 6. Išbandykite įvairius variantus (never-never, ifroom-ifroom, never-ifroom, ifroom-never). 7. Eilutė android:orderincategory="100" nurodo objektų išdėstymo eilės tvarką. Vietoje 100 įrašius 200 android:orderincategory="200" app:showasaction="ifroom"/> Objektai susikeis vietomis: 8. Į meniu juostą pridėkite paieškos mygtuką. Pirmiausia įsikelkite grafinius failus, tada prirašykite eilutę kuri nurodo, kad iš katalogo res/drawable bus naudojamas grafinis failas ic_action_search.png. Pastaba: darbui tinkančius paveiksliukus atsisiųskite iš interneto adresu: 9. Taip pat pataisykite kitas eilutes pagal pavyzdį: <item app:showasaction="ifroom"/> <item app:showasaction="never"/> 10. Gavote vaizdą su mygtuku: 9

46 Turinys Praktinis darbas Nr. 10 Mobilios aplikacijos kūrimas naudojant Java programavimo kalbą. Teksto rašymas.. 3 Praktinis darbas Nr. 11 Mobilios aplikacijos kūrimas naudojant Java programavimo kalbą. Mygtuko įkėlimas... 4 Praktinis darbas Nr. 12 Vartotojo sąsajos kūrimas naudojant Java programavimo kalbą Savarankiškas darbas Nr 3 Vartotojo sąsajos kūrimas naudojant Java programavimo kalbą Praktinis darbas Nr. 13 Vartotojo sąsajos kūrimas naudojant Java programavimo kalbą Praktinis darbas Nr. 14 Aktyvaus lango gyvavimo ciklo metodai Praktinis darbas Nr. 15 Pranešimas ekrane (Toast) Praktinis darbas Nr. 16 Vartotojo šriftų pritaikymas Praktinis darbas Nr. 17 Dviejų langų mobili aplikacija, langų aktyvavimo metodai Papildoma užduotis Kitas lango aktyvavimo metodas Praktinis darbas Nr. 18 Dviejų langų mobili aplikacija, teksto persiuntimo metodai Praktinis darbas Nr. 19 Skambinimas ir skambučio priėmimas Praktinis darbas Nr. 20 Skambinimo funkcijos tobulinimas

47 Praktinis darbas Nr. 10 Mobilios aplikacijos kūrimas naudojant Java programavimo kalbą. Teksto rašymas Darbo tikslas mobilioje aplikacijoje rašyti tekstą naudojant Java programavimo kalbą. Darbo eiga: 1. Kurkite naują mobilią aplikaciją: 2. Ištrinkite teksto rašymo eilutes iš activity_main.xml: <RelativeLayout xmlns:android=" ndroid" xmlns:tools=" tools:context="${relativepackage.${activityclass" > </RelativeLayout> 3. Ištrinkite maketo vaizdavimą ekrane MainActivity.java faile. 4. Įrašykite tris teksto pateikimo į ekraną eilutes MainActivity.java faile: package com.example.tekstorasymassujava; import android.app.activity; import android.os.bundle; import android.widget.textview; public class MainActivity extends Activity protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); TextView RodykTeksta = new TextView(this); RodykTeksta.setText("Labas rytas, nematytas!"); setcontentview(rodykteksta); // kuriame naują eilutę // nurodom tekstą kurį eilutė rašys // nurodom kad parodytų tekstą ekrane // ši eilutė naudoja setcontentview() metodą, kuris nupiešia main.xml failą jūsų ekrane // setcontentview(r.layout.activity_main); Vaizdas kompiuteryje (užrašo nėra): Vaizdas telefone (užrašas yra): 3

48 Praktinis darbas Nr. 11 Mobilios aplikacijos kūrimas naudojant Java programavimo kalbą. Mygtuko įkėlimas Darbo tikslas mobilioje aplikacijoje įkelti mygtuką naudojant Java programavimo kalbą. Darbo eiga: 1. Kurkite naują mobilią aplikaciją: 2. Java faile aprašykite tris naujai kuriamus objektus ir juos apibūdinkite: package com.example.linearlayoutmaketokodopavyzdys; import android.app.activity; import android.os.bundle; import android.widget.button; import android.widget.linearlayout; import android.widget.textview; public class LinearActivity extends Activity { --> LinearLayout ll; TextView t; Button protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); ll=new LinearLayout(this); t=new TextView(this); b=new Button(this); setcontentview(r.layout.activity_linear); 3. Aprašykite visus jų protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); ll=new LinearLayout(this); t=new TextView(this); b=new Button(this); LayoutParams dimensions=new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); ll.setlayoutparams(dimensions); LayoutParams viewdimensions=new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); t.setlayoutparams(viewdimensions); b.setlayoutparams(viewdimensions); ll.setorientation(linearlayout.vertical); t.settext("labas pasauli!"); b.settext("mygtukas"); ll.addview(t); ll.addview(b); setcontentview(ll); 4

49 4. Xml failą palikite tuščią, be jokių grafinių objektų: <RelativeLayout xmlns:android=" xmlns:tools=" tools:context="${relativepackage.${activityclass" > </RelativeLayout> 5. Testuokite programą, ir pamatykite jums jau pažįstamus objektus: 5

50 Praktinis darbas Nr. 12 Vartotojo sąsajos kūrimas naudojant Java programavimo kalbą - 1 Darbo tikslas susipažinti su Java programavimo kalbos metodais ir funkcijomis, Java failo struktūra. Sukurti mobilią aplikaciją su tekstu ir teksto įvedimo lauku, kurioje objektai aprašoma naudojant Java metodus. Darbo eiga: Suprojektuosite paprastą prisijungimo formą: 1. Kurkite naują mobilią aplikaciją: 2. activity_relative.xml faile palikite tik pačio maketo aprašymą: <RelativeLayout xmlns:android=" xmlns:tools=" tools:context="${relativepackage.${activityclass" > </RelativeLayout> --> 3. Visą kitą vaizdą, matomą ekrane, suformuosite faile RelativeActivity.java. Pirmiausia, RelativeActivity.java faile, iš kart po eilutės public class RelativeActivity extends Activity {, aprašykite vaizde matomus objektus: RelativeLayout main; EditText vartotojovardas, vartotojoslaptazodis; TextView zinute, vartotojas, slaptazodis; Button prisijungti; 6

51 4. Iš kart po metodo oncreate sukurkite procedūrą init(), kurioje aprašysite kiekvieno objekto veiksmus: private void init() { // TODO Auto-generated method stub main = new RelativeLayout(this); vartotojovardas = new EditText(this); vartotojoslaptazodis = new EditText(this); zinute = new TextView(this); //Please login first vartotojas = new TextView(this); slaptazodis = new TextView(this); prisijungti = new Button(this); 5. Patį kreipinį į procedūrą įkelkite į metodą protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_relative); init(); 6. Aprašykite pagrindinio maketo vaizdą procedūroje init(): main=new RelativeLayout(this); LayoutParams maindimensions=new LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); main.setlayoutparams(maindimensions); ir pirmojo objekto vaizdą iš kart po procedūros init(): private void createmessagetextview() { // TODO Auto-generated method stub LayoutParams messagedimensions = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); messagedimensions.addrule(relativelayout.align_parent_left); zinute.settext("please Login First"); zinute.setlayoutparams(messagedimensions); Aprašykite naują parametrą, prie objektų aprašų sąrašo (viršuje): LayoutParams messagedimensions; 7. Koreguokite metodą oncreate, kad sukurtą vaizdą parodytų protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); init(); createmessagetextview(); main.addview(zinute, messagedimensions); setcontentview(main); 7

52 8. Įvykdžius programą, matote pirmąjį objektą - pranešimo eilutę: 9. Toliau po objektu zinute reikia įkelti objektus vartotojas ir vartotojovardas. Norėdami įkelti objektus vieną po kito, jiems turite suteikti identifikatorių: int zinuteid=1,... Identifikatorius aprašykite iš karto po objektų aprašo (viršuje): RelativeLayout main; EditText vartotojovardas, vartotojoslaptazodis; TextView zinute, vartotojas, slaptazodis; LayoutParams messagedimensions; Button prisijungti; int zinuteid=1,vartotojovardasid=2, vartotojoslaptazodisid=3, vartotojasid=4, slaptazodisid=5, prisijungtiid=6; Identifikatoriaus naudojimas aprašomas ir prie kiekvieno objekto savybių, viduje procedūros: zinute.setid(zinuteid); 10. Kurkite naują procedūrą antrajam objektui: private void createusernametextview() { // TODO Auto-generated method stub usernamedimensions = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); usernamedimensions.addrule(relativelayout.align_parent_left); usernamedimensions.addrule(relativelayout.below,zinuteid); vartotojas.settext("user Name"); vartotojas.setid(vartotojasid); 11. Koreguokite metodą oncreate, kad įtrauktų antrojo objekto protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); init(); createmessagetextview(); createusernametextview(); main.addview(zinute, messagedimensions); main.addview(vartotojas, usernamedimensions); setcontentview(main); 8

53 12. Įvykdžius programą, lange matote jau du objektus: 13. Kurkite naują procedūrą trečiajam objektui (teksto redagavimo laukui): private void vardoivedimolaukas() { // TODO Auto-generated method stub vardoivedimolaukodydis = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); vartotojovardas.setid(vartotojovardasid); vardoivedimolaukodydis.addrule(relativelayout.below, zinuteid); vardoivedimolaukodydis.addrule(relativelayout.right_of, vartotojasid); 14. Koreguokite metodą protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); init(); createmessagetextview(); createusernametextview(); vardoivedimolaukas(); main.addview(zinute, messagedimensions); main.addview(vartotojas, usernamedimensions); main.addview(vartotojovardas, vardoivedimolaukodydis); setcontentview(main); 15. Patikrinkite: Teksto įvedimo laukas. Įvedant tekstą didėja. 16. Procedūroje pridėkite savybę, kuri iškarto išplės teksto lauką iki dešinės pusės: vardoivedimolaukodydis.addrule(relativelayout.align_parent_right); 17. Patikrinkite: 9

54 Visas *.java failas: package com.example.relativelayoutmaketokodopavyzdys; import android.app.activity; import android.os.bundle; import android.widget.button; import android.widget.edittext; import android.widget.relativelayout; import android.widget.relativelayout.layoutparams; import android.widget.textview; public class RelativeActivity extends Activity { RelativeLayout main; EditText vartotojovardas, vartotojoslaptazodis; TextView zinute, vartotojas, slaptazodis; LayoutParams messagedimensions, usernamedimensions, vardoivedimolaukodydis; Button prisijungti; int zinuteid=1,vartotojovardasid=2, vartotojoslaptazodisid=3, vartotojasid=4, slaptazodisid=5, protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); init(); createmessagetextview(); createusernametextview(); vardoivedimolaukas(); main.addview(zinute, messagedimensions); main.addview(vartotojas, usernamedimensions); main.addview(vartotojovardas, vardoivedimolaukodydis); setcontentview(main); private void init() { // TODO Auto-generated method stub main=new RelativeLayout(this); LayoutParams maindimensions=new LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); main.setlayoutparams(maindimensions); vartotojovardas = new EditText(this); vartotojoslaptazodis = new EditText(this); zinute = new TextView(this); //Please login first vartotojas = new TextView(this); //User Name slaptazodis = new TextView(this); //Password prisijungti = new Button(this); //Prisijungti private void createmessagetextview() { // TODO Auto-generated method stub messagedimensions = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); messagedimensions.addrule(relativelayout.align_parent_left); zinute.settext("please Login First"); zinute.setid(zinuteid); zinute.setlayoutparams(messagedimensions); private void createusernametextview() { // TODO Auto-generated method stub usernamedimensions = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); usernamedimensions.addrule(relativelayout.align_parent_left); usernamedimensions.addrule(relativelayout.below,zinuteid); vartotojas.settext("user Name"); vartotojas.setid(vartotojasid); private void vardoivedimolaukas() { // TODO Auto-generated method stub vardoivedimolaukodydis = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); vartotojovardas.setid(vartotojovardasid); vardoivedimolaukodydis.addrule(relativelayout.below, zinuteid); vardoivedimolaukodydis.addrule(relativelayout.right_of, vartotojasid); vardoivedimolaukodydis.addrule(relativelayout.align_parent_right); 10

55 Savarankiškas darbas Nr 3 Vartotojo sąsajos kūrimas naudojant Java programavimo kalbą Darbo tikslas sukurti mobilią aplikaciją, kurioje vartotojo sąsaja aprašoma naudojant Java metodus. Užduotis: pratęskite darbą į jau sukurtą langą įkelkite teksto žinutę Password ir antrą teksto įvedimo lauką: 11

56 Atsakymas: Dvi papildomos procedūros: private void createpasswordtextview() { // TODO Auto-generated method stub passworddimensions = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); passworddimensions.addrule(relativelayout.align_parent_left); passworddimensions.addrule(relativelayout.below,vartotojovardasid); slaptazodis.settext("password"); slaptazodis.setid(slaptazodisid); private void slaptazodzioivedimolaukas() { // TODO Auto-generated method stub slaptazodzioivedimolaukodydis = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); vartotojoslaptazodis.setid(vartotojoslaptazodisid); slaptazodzioivedimolaukodydis.addrule(relativelayout.below, vartotojovardasid); slaptazodzioivedimolaukodydis.addrule(relativelayout.right_of, slaptazodisid); slaptazodzioivedimolaukodydis.addrule(relativelayout.align_parent_right); dviejų naujų kintamųjų aprašymas: LayoutParams messagedimensions, usernamedimensions, vardoivedimolaukodydis, passworddimensions, slaptazodzioivedimolaukodydis; papildomos eilutės oncreate protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); init(); createmessagetextview(); createusernametextview(); vardoivedimolaukas(); createpasswordtextview(); slaptazodzioivedimolaukas(); main.addview(zinute, messagedimensions); main.addview(vartotojas, usernamedimensions); main.addview(vartotojovardas, vardoivedimolaukodydis); main.addview(slaptazodis, passworddimensions); main.addview(vartotojoslaptazodis, slaptazodzioivedimolaukodydis); setcontentview(main); 12

57 Praktinis darbas Nr. 13 Vartotojo sąsajos kūrimas naudojant Java programavimo kalbą - 2 Darbo tikslas susipažinti su Java programavimo kalbos metodais ir funkcijomis, Java failo struktūra. Sukurti mobilią aplikaciją su tekstu, teksto įvedimo lauku ir mygtuku, nustatyti objektams jų savybes. Darbo eiga: Praėjusią pamoką naudodami java programavimo kalbos kodus sukūrėte maketo pagrindus: Šią pamoką įkelsite siuntimo mygtuką ir sutvarkysite maketo vaizdą (stilių). 1. Mygtuko įkėlimas a) Atlikite tuos pačius veiksmus, kaip ir kitiems objektams. Galite pabandyti tai atlikti savarankiškai. Mygtuko procedūra: private void mygtukas() { // TODO Auto-generated method stub mygtukosavybes = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); prisijungti.setid(prisijungtiid); mygtukosavybes.addrule(relativelayout.below, vartotojoslaptazodisid); mygtukosavybes.addrule(relativelayout.align_parent_right); prisijungti.settext("login"); Kintamojo aprašymas: LayoutParams messagedimensions, usernamedimensions, vardoivedimolaukodydis, passworddimensions, slaptazodzioivedimolaukodydis, mygtukosavybes; Vaizdo protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); init(); createmessagetextview(); createusernametextview(); vardoivedimolaukas(); createpasswordtextview(); slaptazodzioivedimolaukas(); mygtukas(); main.addview(zinute, messagedimensions); main.addview(vartotojas, usernamedimensions); main.addview(vartotojovardas, vardoivedimolaukodydis); main.addview(slaptazodis, passworddimensions); main.addview(vartotojoslaptazodis, slaptazodzioivedimolaukodydis); main.addview(prisijungti, mygtukosavybes); setcontentview(main); b) Patikrinkite: 13

58 2. Vaizdo redagavimas Sulyginkite teksto užrašus User Name ir Password dešinėje pusėje, kad abu teksto laukai prasidėtų vienoje vertikalioje linijoje: private void createpasswordtextview() { // TODO Auto-generated method stub passworddimensions = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); passworddimensions.addrule(relativelayout.align_parent_left); passworddimensions.addrule(relativelayout.below,vartotojovardasid); passworddimensions.addrule(relativelayout.align_right,vartotojasid); slaptazodis.setgravity(gravity.right); slaptazodis.settext("password"); slaptazodis.setid(slaptazodisid); Sulyginkite užrašą User Name ir įvedimo lauką horizontaliai per vidurį: private void vardoivedimolaukas() { // TODO Auto-generated method stub vardoivedimolaukodydis = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); vartotojovardas.setid(vartotojovardasid); vardoivedimolaukodydis.addrule(relativelayout.below, zinuteid); vardoivedimolaukodydis.addrule(relativelayout.right_of, vartotojasid); vardoivedimolaukodydis.addrule(relativelayout.align_baseline, vartotojasid); vardoivedimolaukodydis.addrule(relativelayout.align_parent_right); Tą patį padarykite su slaptažodžio įvedimo lauku: slaptazodzioivedimolaukodydis.addrule(relativelayout.align_baseline, slaptazodisid); Padidinkite tarpus tarp objekto dalių: o apsirašykite kintamąjį: int tarpelis=10; o pritaikykite kintąmąjį objektams: zinute.setpadding(tarpelis, 100, tarpelis, tarpelis); vartotojas.setpadding(tarpelis, tarpelis, tarpelis, tarpelis); slaptazodis.setpadding(tarpelis, tarpelis, tarpelis, tarpelis); Gautas rezultatas: 14

59 Praktinis darbas Nr. 14 Aktyvaus lango gyvavimo ciklo metodai Darbo tikslas susipažinti su aktyvaus lango veikimo principais, mobilioje aplikacijoje stebėti aktyvaus lango gyvavimo ciklus. Įvadas: Aktyvaus lango gyvavimo ciklo metodai: OnCreate() OnStart() OnResume() OnPause() OnStop() OnRestart() OnDestroy Darbo eiga: 1. Norėdami pamatyti ar programoje veikia ciklas, galime įdėti pranešimo veiksmą. Čia pateiktas MainActivity.java failas su ciklais ir jų veikimo patikrinimo eilute: package com.example.vivzactivitylifecycle; import android.app.activity; import android.os.bundle; import android.util.log; public class MainActivity extends Activity protected void oncreate(bundle savedinstancestate){ super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); Log.d("VIVZ", "oncreate was protected void onresume() { // TODO Auto-generated method stub super.onresume(); Log.d("VIVZ", "onresume was protected void onstart() { // TODO Auto-generated method stub super.onstart(); Log.d("VIVZ", "onstart was protected void onpause() { // TODO Auto-generated method stub super.onpause(); Log.d("VIVZ", "onpause was protected void onstop() { // TODO Auto-generated method stub super.onstop(); Log.d("VIVZ", "onstop was protected void onrestart() { // TODO Auto-generated method stub super.onrestart(); Log.d("VIVZ", "onrestart was protected void ondestroy() { // TODO Auto-generated method stub super.ondestroy(); Log.d("VIVZ", "ondestroy was called"); Eilutė Log.d("VIVZ", "ondestroy was called"); išves pranešimą su žyme VIVZ LogCat pranešimų lange. 15

60 2. Norėdami matyti tik pranešimus su VIVZ žyme, susikurkite naują filtrą. Spauskite +, surašykite pavadinimus: ir matysite tik savo filtrą: Tai labai naudinga, programos testavimui. Jei programa veikia ne taip, kaip jūs norėtumėt, galima įdėti tokį tikrinimą ir pažiūrėti, ar pasiekiama ta vieta, kurią jūs užprogramavote. Galima uždėti skirtingus lygius, kad lengviau galima būtų rasti. 16

61 Praktinis darbas Nr. 15 Pranešimas ekrane (Toast) Darbo tikslas įterpti į mobilią aplikaciją pranešimo išvedimo metodus. Darbo eiga: 1. Kurkite naują mobilią aplikaciją: 2. Ištrinkite tekstą, įkelkite mygtuką ir nurodykite kreipinį paspaudimo veiksmui onclick. <RelativeLayout xmlns:android=" xmlns:tools=" tools:context="${relativepackage.${activityclass" > android:layout_alignparentleft="true" android:layout_alignparentright="true" android:layout_alignparenttop="true" android:onclick="pranesimas" android:text="parodyk pranešimą" /> </RelativeLayout> 3. Kurkite java metodą mygtuko paspaudimo veiksmui: public void pranesimas(view v) { Toast toast=toast.maketext(this, "Sveiki visi, išmokę naują pamoką",toast.length_long ); toast.show(); 4. Įvykdžius programą, ir paspaudus mygtuką išmetamas pranešimas: 17

62 5. Nurodykite, kad pranešimas būtų centre: public void pranesimas(view v) { Toast toast=toast.maketext(this, "Sveiki visi, išmokę naują pamoką",toast.length_long ); toast.setgravity(gravity.center, 0, 0); toast.show(); 6. Patikrinkite: 7. Lygiavimo eilutėje įrašyti 0, 0 nurodo x ir y poziciją ekrane nuo centro: 18

63 Praktinis darbas Nr. 16 Vartotojo šriftų pritaikymas Darbo tikslas surasti internete ir pritaikyti savo mobiliai aplikacijai įvairius vartotojo šriftus. Darbo eiga: 1. Kurkite naują mobilią aplikaciją: 2. Pakeiskite lange matomą tekstą Hello World! kitu, lietuvišku Sveikinimai iš Kauno!, taip pat ekrano meniu juostos užraše įrašykite lietuviškas raides. Visa tai atliksite redaguodami res/values/strings.xml failą: <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">vartotojo šriftų panaudojimas</string> <string name="hello_world">sveikinimai iš Kauno!</string> </resources> 3. Grįžę atgal į darbinį langą, perkraukite jį (refresh), kad užrašai atsinaujintų: --> 4. Kadangi pagrindinis objektas su kuriuo dirbsite yra tekstinis laukas, todėl priskirkite jam identifikatorių. <TextView /> 5. Aprašykite objektą *.java faile: public class SriftaiActivity extends Activity { TextView protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_sriftai); t=(textview) findviewbyid(r.id.mano_tekstas); 19

64 6. Kataloge assets sukurkite naują katalogą fonts, į kurį įkelkite jums patikusį šriftą (pvz. - zeronero.ttf) Šriftą galite atsisiųsti iš interneto adresu 7. Aprašykite šriftų panaudojimą *.java faile: package com.example.vartotojosriftupanaudojimas; import android.app.activity; import android.graphics.typeface; import android.os.bundle; import android.widget.textview; public class SriftaiActivity extends Activity { TextView protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_sriftai); t=(textview) findviewbyid(r.id.mano_tekstas); Typeface manosriftai=typeface.createfromasset(getassets(), "fonts/zeronero.ttf"); t.settypeface(manosriftai); 8. Patikrinkite: 20

65 Praktinis darbas Nr. 17 Dviejų langų mobili aplikacija, langų aktyvavimo metodai Darbo tikslas sukurti dviejų langų mobilią aplikaciją, panaudoti langų aktyvavimo metodus. Darbo eiga: 1. Kurkite naują mobilią aplikaciją DemoIntent. 2. Į šią mobilią aplikaciją pridėkite dar vieną aktyvų langą ActivityB: a) Meniu pasirinkite File New Other... Android Activity Next; b) Empty Activity Next; c) Užpildykite laukus; d) Finish. 3. Pagrindiniame projekto lange, po tekstu, įkelkite mygtuką. <RelativeLayout xmlns:android=" xmlns:tools=" tools:context="${relativepackage.${activityclass" > <TextView /> android:onclick="vykdyk" android:text="spausk čia" /> </RelativeLayout> 4. Pagrindiniame *.java faile įrašykite mygtuko objektą ir jo aktyvavimo metodą vykdyk, kuriame aprašyta dviejų langų sujungimo procedūra Intent. package com.example.demointent; import android.app.activity; import android.content.intent; import android.os.bundle; import android.view.view; import android.widget.button; public class IntentActivity extends Activity { Button protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_intent); b=(button)findviewbyid(r.id.button1); public void vykdyk(view v) { Intent i=new Intent(this, ActivityB.class); startactivity(i); 5. Testuokite programą. Paspaudus mygtuką atveriamas kitas aktyvus langas. 21

66 Papildoma užduotis Antrame lange įkelkite mygtuką grįžimui atgal į pirmą langą ir sukurkite jo Intent. Įrašome paketo pavadinimą: package com.example.demointent; import android.app.activity; import android.content.intent; import android.os.bundle; import android.view.view; import android.widget.button; public class IntentActivity extends Activity { Kitas lango aktyvavimo metodas Button protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_intent); b=(button)findviewbyid(r.id.button1); public void vykdyk(view v) { Intent i=new Intent(); i.setclassname("com.example.demointent", "com.example.demointent.activityb"); startactivity(i); 22

67 Praktinis darbas Nr. 18 Dviejų langų mobili aplikacija, teksto persiuntimo metodai Darbo tikslas sukurti dviejų langų mobilią aplikaciją, panaudoti teksto persiuntimo iš vieno lango į kitą metodus. Darbo eiga: 1. Padarykite Praktinio darbo Nr. 1 mobilios aplikacijos PirmasisManoApp kopiją TekstineZinute (arba sukurkite iš naujo): 2. Faile strings.xml pakeiskite aktyvaus lango pavadinimą: <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">tekstinė žinutė</string> <string name="edit_message">įveskite tekstą</string> <string name="button_send">siųsti</string> <string name="title_activity_main">mainactivity</string> <string name="title_activity_dissplay_message">dissplaymessageactivity</string> </resources> 3. Į šią mobilią aplikaciją pridėkite dar vieną aktyvų langą: Meniu pasirinkite File New Other... Android Activity Next; Empty Activity Next; Užpildykite laukus: Finish. 4. Sutvarkykite naujo lango maketą activity_disspaly_message.xml: <RelativeLayout xmlns:android=" xmlns:tools=" tools:context="${relativepackage.${activityclass" > </RelativeLayout> 23

68 5. Pridėkite mygtuko veiksmą activity_main.xml faile: <LinearLayout xmlns:android=" xmlns:tools=" android:orientation="horizontal" tools:context="${relativepackage.${activityclass" > <EditText android:layout_width="0dp" /> android:onclick="sendmessage" /> </LinearLayout> 6. Faile MainActivity.java įrašykite mygtuko aktyvavimo metodą sendmessage ir veiksmus: package com.example.pirmasismanoapp; import android.app.activity; import android.content.intent; import android.os.bundle; import android.view.view; import android.widget.edittext; public class MainActivity extends Activity { public final static String EXTRA_MESSAGE = protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); /** Mygtuko paspaudimo metodas atidarys žinutės langą */ public void sendmessage(view view) { Intent intent = new Intent(this, DissplayMessage.class); EditText edittext = (EditText) findviewbyid(r.id.edit_message); String message = edittext.gettext().tostring(); intent.putextra(extra_message, message); startactivity(intent); 7. Faile DissplayMessage.java įrašykite tekstinės žinutės gavimo iš kito lango veiksmus: package com.example.pirmasismanoapp; import android.app.activity; import android.content.intent; import android.os.bundle; import android.widget.textview; public class DissplayMessage extends Activity protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_dissplay_message); //Priimama tekstinė žinutė iš kito aktyvaus lango Intent intent = getintent(); String message = intent.getstringextra(mainactivity.extra_message); // Kuriamas tekstinis vaizdas TextView textview = new TextView(this); textview.settextsize(20); textview.settext(message); //Aktyvuojamas tekstinis vaizdas setcontentview(textview); 24

69 8. Paleidus programą, atsidaro pirmasis langas: parašius tekstą ir paspaudus mygtuką, atsidaro antrasis langas: 25

70 Praktinis darbas Nr. 19 Skambinimas ir skambučio priėmimas Darbo tikslas sukurti mobilią aplikaciją imituojančią skambinimą telefonu. Darbo eiga: 1. Kurkite naują mobilią aplikaciją: 2. activity_skambutis.xml faile ištrinkite teksto pateikimo eilutes. 3. Redaguokite SkambutisActivity.java failą, įrašydami metodą Intent: package com.example.skambutis; import android.app.activity; import android.content.intent; import android.net.uri; import android.os.bundle; public class SkambutisActivity extends Activity protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_skambutis); Intent DialIntent = new Intent(Intent.ACTION_DIAL,Uri.parse("tel: ")); DialIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startactivity(dialintent); 4. Jei testuosite programą telefone, pamatysite jums įprastą skambinimo vaizdą: 5. Paskambinus šiuo numeriu įvyks sujungimas. Galima numerį pakeisti kitu. 26

71 6. Tam, kad iš skambinančiojo taptumėt tuo, kuriam skambina, redaguokite parašytas tris eilutes: Intent CallIntent = new Intent(Intent.ACTION_CALL,Uri.parse("tel: ")); CallIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startactivity(callintent); 7. Testuokite. Įvykdę programą, turėtumėte gauti vaizdą su klaidų kodais, arba programa visai nepasileis. 8. Reikia padaryti tam tikrus nustatymus, kad būtų leidžiama ši procedūra. Redaguokite aktyvaus lango leidimus: a) AndroidManifest.xml faile pasirinkę Permissions, spauskite mygtuką Add ir atsidariusiame lange komandą Uses Permission b) Vardo lauke pasirinkite CALL_PHONE --> c) Manifest faile atsiras viena papildoma eilutė: <uses-permission android:name="android.permission.call_phone"/> 27

72 9. Testuokite programą iš naujo. Ir štai, jums kažkas skambina (testuokite emuliatoriuje, nes telefone gali neveikti): 28

73 Praktinis darbas Nr. 20 Skambinimo funkcijos tobulinimas Darbo tikslas patobulinti mobilią aplikaciją, imituojančią skambinimą telefonu, kad prieš skambinant būtų galima įvesti abonento telefono numerį. Darbo eiga: Tęsite Praktinį darbą Nr.19 Skambutis. (Jei jo nedarėte, teks susikurti.) Patobulinsite programą, pridėdami mygtuką ir teksto redagavimo langą. 1. Į failą activity_skambutis.xml įkelkite mygtuką: <RelativeLayout xmlns:android=" xmlns:tools=" tools:context="com.example.skambutis.skambutisactivity" > android:layout_width="fill_parent" android:text="skambiname draugui" /> </RelativeLayout> Šios keturios eilutės nurodo, kad bus sukurtas mygtukas vardu callbutton nurodomas mygtuko plotis (fill_parent - užpildyti visą) nurodomas mygtuko aukštis (wrap_content) nurodomas mygtuko tekstas (Skambiname draugui) 2. Aprašykite mygtuko funkcijas SkambutisActivity.java faile: package com.example.skambutis; import android.app.activity; import android.content.intent; import android.net.uri; import android.os.bundle; import android.view.view; import android.widget.button; public class SkambutisActivity extends Activity protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_skambutis); final Button callbutton = (Button) findviewbyid(r.id.callbutton); callbutton.setonclicklistener(new Button.OnClickListener() { public void onclick(view v){ Intent callintent = new Intent(Intent.ACTION_CALL,Uri.parse("tel: ")); callintent.setflags(intent.flag_activity_new_task ); startactivity(callintent); ); Sukūrėte mygtuką xml faile, jam suteikėte vardą ID callbutton. Funkcijoje taip pat naudojate šį vardą ir mygtuko veiksmus, kaip ir praėjusiame darbe (Nr.19), tam, kad būtų iškviestas skambinimo numeriui langas. 29

74 Įvykdę programą gaunate: 3. Kol kas galite paskambinti tik vienu programoje įrašytu numeriu. Pakoreguosite programą taip, kad numerį galima būtų įvesti prieš skambinant. Pakeiskite maketo objektų dėstymo būdą iš reliatyvaus į linijinį (vertikalų). Pridėkite tekstą ir teksto įvedimo langą, kuriame galėsima bus įvesti kitą telefono numerį. <LinearLayout xmlns:android=" xmlns:tools=" android:orientation="vertical" tools:context="com.example.skambutis.skambutisactivity" > <TextView android:layout_width="fill_parent" android:text="įveskite numerį:" /> <EditText android:layout_width="fill_parent" /> </LinearLayout> android:layout_width="fill_parent" android:text="skambinti" /> 4. Redaguokite failą SkambutisActivity.java. Aprašykite teksto įvedimo lauko funkciją EditText. final EditText phonenumber = (EditText) findviewbyid(r.id.phonenumber); Pakeiskite metodą, kuriame buvo tel. nr , į teksto įvedimo metodą gettext(): Intent CallIntent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:" + phonenumber.gettext())); 5. Įvykdžius programą, jau galite skambinti norimu numeriu. 30

75 Visas SkambutisActivity.java failas: package com.example.skambutis; import android.app.activity; import android.content.intent; import android.net.uri; import android.os.bundle; import android.view.view; import android.widget.button; import android.widget.edittext; public class SkambutisActivity extends Activity protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_skambutis); final EditText phonenumber = (EditText) findviewbyid(r.id.phonenumber); final Button callbutton = (Button) findviewbyid(r.id.callbutton); callbutton.setonclicklistener(new Button.OnClickListener() { public void onclick(view v){ Intent CallIntent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:" + phonenumber.gettext())); CallIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK ); startactivity(callintent); ); 31

76 Turinys Praktinis darbas Nr. 21 Sąlyginis sakinys. Mygtuko aktyvavimo metodai... 3 Praktinis darbas Nr. 22 Kelių aktyvių langų mobili aplikacija. Sąlyginio sakinio panaudojimas... 5 Praktinis darbas Nr. 23 Pranešimas su paveikslu... 8 Praktinis darbas Nr. 24 Rėmelio maketas (FrameLayout) Praktinis darbas Nr. 25 Žymės langelio (CheckBox) veikimas Praktinis darbas Nr. 26 Jungiklio (ToggleButton) veikimas Praktinis darbas Nr. 27 Sąrašas su piktogramomis

77 Praktinis darbas Nr. 21 Sąlyginis sakinys. Mygtuko aktyvavimo metodai Darbo tikslas mygtukų aktyvavimo metode panaudoti sąlyginį sakinį. Darbo eiga: 1. Kurkite naują mobilią aplikaciją Mygtukas. 2. Įkelkite du mygtukus su jų vardais (ID) ir aktyvavimo veiksmu mygtukoveiksmas : <LinearLayout xmlns:android=" xmlns:tools=" android:orientation="horizontal" tools:context="${relativepackage.${activityclass" > android:id="@+id/button1" android:onclick="mygtukoveiksmas" android:text="mygtukas" /> android:id="@+id/button2" android:onclick="mygtukoveiksmas" android:text="kitas mygtukas" /> </LinearLayout> 3. Aprašykite metodą mygtukoveiksmas: package com.example.mygtukas; import android.app.activity; import android.os.bundle; import android.util.log; import android.view.view; public class MygtukasActivity extends Activity protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_mygtukas); public void mygtukoveiksmas(view v) { Log.d("VIVZ", v.getid()+"mygtukas paspaustas"); 3

78 4. Testuokite programą. Paspaudus vieną ir kitą mygtukus, bus išvedami pranešimai (jei pamiršote kaip juos peržiūrėti, žiūrėkite Praktinį darbą Nr. 14): ir yra objektų numeriai, todėl galite panaudoti šią getid() funkciją, tam kad patikrinti, kuris mygtukas paspaustas: package com.example.mygtukas; import android.app.activity; import android.os.bundle; import android.util.log; import android.view.view; public class MygtukasActivity extends Activity protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_mygtukas); public void mygtukoveiksmas(view v) { if(v.getid()==r.id.button1) { Log.d("VIVZ", "Paspaustas pirmas mygtukas"); else if(v.getid()==r.id.button2) { Log.d("VIVZ", "Paspaustas kitas mygtukas"); 4

79 Praktinis darbas Nr. 22 Kelių aktyvių langų mobili aplikacija. Sąlyginio sakinio panaudojimas Darbo tikslas sukurti kelių langų mobilią aplikaciją, lango aktyvavimo pasirinkimui panaudoti sąlyginį sakinį. Darbo eiga: 1. Kurkite naują mobilią aplikaciją GooglePaslaugos: --> 2. Įkelkite ir vienas paskui kitą išdėliokite tris mygtukus: 3. Vaizdui pagrąžinti kiekvienam mygtukui uždėkite: paraštes viršuje ir apačioje: android:layout_margintop="4dp" android:layout_marginbottom="4dp" spalvą: android:background="#ffcc00" spalvą visam langui: android:background="#99cc00" Visas activity_google_paslaugu.xml failas: <RelativeLayout xmlns:android=" xmlns:tools=" android:background="#99cc00" tools:context="${relativepackage.${activityclass" > android:layout_alignparentright="true" android:layout_alignparentleft="true" android:layout_alignparenttop="true" android:layout_margintop="4dp" android:layout_marginbottom="4dp" android:background="#ffcc00" android:onclick="veiksmas" android:text="google žemėlapis" /> 5

80 android:layout_margintop="4dp" android:layout_marginbottom="4dp" android:background="#ffcc00" android:onclick="veiksmas" android:text="google Market" /> android:layout_margintop="4dp" android:layout_marginbottom="4dp" android:background="#ffcc00" android:onclick="veiksmas" android:text="išsiųsti el. laišką" /> </RelativeLayout> 4. Aprašykite metodą veiksmas: pirmiausia aprašykite tris IF funkcijas: public void veiksmas(view view) { if(view.getid()==r.id.zemelapis){ if(view.getid()==r.id.market){ if(view.getid()==r.id.laiskas){ Sukurkite Intent mygtukui Google žemėlapis, kurį paspaudus programa atvers žemėlapio vaizdą su nurodytomis koordinatėmis (lattitude ir longitude): public void veiksmas(view view) { Intent intent=null; if(view.getid()==r.id.zemelapis){ intent=new Intent(android.content.Intent.ACTION_VIEW); intent.setdata(uri.parse("geo: , ")); /** tai yra koordinates, kurias atvers zemelapyje */ startactivity(intent); Koreguokite programos kodą įtraukdami pasirinkimo veiksmą chooser, kuris parodys, visus akt. langus jūsų telefone, kurie naudoja šitą Intent: public void veiksmas(view view) { Intent intent=null, chooser=null; if(view.getid()==r.id.zemelapis){ intent=new Intent(android.content.Intent.ACTION_VIEW); intent.setdata(uri.parse("geo: , ")); /** tai yra koordinates, kurias atvers zemelapyje */ chooser=intent.createchooser(intent, "Pasirinkite:"); startactivity(chooser); 6

81 5. Testuokite programą. Programos veikimą galima patikrinti tik su realiu prietaisu turinčiu prieigą prie interneto. 6. Dabar aprašykite veiksmus antram aktyvaus lango mygtukui Google Market. Veiksmų seka bus panaši: Atsiverskite internete google play paslaugų puslapį adresu: Šitą adresą panaudosite kurdami programos URI. Nukopijuokite jį į URI laukelį, ir pakeiskite taip: market://details?id=dolphin.developers.com Visa IF funkcija: if(view.getid()==r.id.market){ intent=new Intent(android.content.Intent.ACTION_VIEW); intent.setdata(uri.parse("market://details?id=dolphin.developers.com")); /** tai yra puslapio uri adresas */ chooser=intent.createchooser(intent, "Įjunk Market"); startactivity(chooser); 7. Testuokite programą telefone, turinčiame prieigą prie interneto. 8. Dabar aprašykite veiksmus trečiam aktyvaus lango mygtukui Išsiųsti el. laišką : if(view.getid()==r.id.laiskas){ intent=new Intent(android.content.Intent.ACTION_SEND); intent.setdata(uri.parse("mailto:")); String[] to={"iteditvin@gmail.com", "geramdraugui@gmail.com" ; intent.putextra(intent.extra_ , to); intent.putextra(intent.extra_subject, "Tai siunciama is mano app"); intent.putextra(intent.extra_text, "Sveiki, kaip laikotės? Tai yra mano pirma žinutė. "); intent.settype("message/rfc822"); chooser=intent.createchooser(intent, "Pasirinkite:"); startactivity(chooser); Kiekviena eilutė aprašo tokius veiksmus: sukuria Intent objektą su ACTION_SEND; apibrėžia URI kaip mailto: protokolą; leidžia Intent objektui naudoti minėtą protokolą; apibrėžia siuntėjus; apibrėžia el.pašto temą; apibrėžia laiško turinį; nurodo MIME tipą kaip rfc822 (skirta el. paštui) įjungia pasirinkimo veiksmą. 9. Testuokite programą ir paspaudus mygtuką Išsiųsti el. laišką turėtų pasiūlyti pasirinkimą, pagal jūsų telefone įrašytas programas el. paštui. 7

82 Praktinis darbas Nr. 23 Pranešimas su paveikslu Darbo tikslas sukurti mobilią aplikaciją su pranešimu, pranešime panaudoti grafinius objektus. Darbo eiga: 1. Kurkite naują mobilią aplikaciją: 2. Pakeiskite maketo objektų išdėstymą, įkelkite mygtuką: <LinearLayout xmlns:android=" xmlns:tools=" android:orientation="vertical" tools:context="${relativepackage.${activityclass" > android:text="parodyk vartotojo pranešimą" /> </LinearLayout> 3. Kataloge res/layout sukurkite naują maketo failą toast_layout.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:orientation="vertical" > </LinearLayout> 8

83 4. Kataloge res sukurkite dar viena katalogą drawable ir įkelkite į jį paveiksliuką logo.png, kurį panaudosite savo pranešime: 5. Į naujai sukurtą toast_layout.xml failą įkelkite objektą ImageView (Images&Media): Atsidariusiame lange nurodykite paveiksliuko pavadinimą: 9

84 6. Po paveiksliuku pridėkite TextView (Form Widgets): <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:orientation="vertical" > <ImageView android:layout_width="fill_parent" /> <TextView android:text="linkėjimai iš S.Dariaus ir S.Girėno gimnazijos" /> </LinearLayout> 7. Įrašykite pagrindinio mygtuko veiksmus: android:onclick="pranesimas" 8. Identifikuokite pranešimo maketą, pridėdami eilutę: 9. Aprašykime patį metodą pagrindiniame java faile: public void pranesimas(view v){ Toast toast=new Toast(this); toast.setduration(toast.length_long); toast.setgravity(gravity.bottom, 0, 0); LayoutInflater inflater=getlayoutinflater(); View apperance=inflater.inflate(r.layout.toast_layout, (ViewGroup)findViewById(R.id.root)); toast.setview(apperance); toast.show(); Pastaba: su LinearLayout maketu naudojama ViewGroup, visi maketai yra ViewGroup poklasė. 10. Testuokite programą: 10

85 Praktinis darbas Nr. 24 Rėmelio maketas (FrameLayout) Darbo tikslas kurti vartotojo sąsają naudojant rėmelio maketą, Java programoje naudoti sąlyginius sakinius. Darbo eiga: 1. Kurkite naują mobilią aplikaciją: 2. activity_frame_layout.xml faile ištrinkite tekstinį lauką, o maketą pakeiskite į FrameLayout: <FrameLayout xmlns:android=" xmlns:tools=" tools:context="${relativepackage.${activityclass" > </FrameLayout> 3. Kataloge res sukurkite katalogą drawable ir įkelkite į jį du nedidelius paveiksliukus iš interneto (480x640): 4. Į maketą įkelkite pirmą paveiksliuką: <ImageView android:id="@+id/imageview1" android:layout_gravity="left top" android:src="@drawable/pav1" /> 11

86 5. Į maketą įkelkite antrą paveiksliuką: <FrameLayout xmlns:android=" xmlns:tools=" tools:context="${relativepackage.${activityclass" > <ImageView android:layout_gravity="left top" /> <ImageView android:layout_gravity="left top" /> </FrameLayout> 6. Pridėkite paveiksliuko savybę visibility="gone", tuomet antro paveiksliuko nesimatys: <ImageView android:layout_gravity="left top" android:visibility="gone" /> 7. FrameLaytoutActivity.java faile aprašykite veiksmus, kad paspaudus ant vieno paveiksliuko, atsivertų kitas ir t.t. aprašykite kintamuosius: public class FrameLaytoutActivity extends Activity { ImageView p1, protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_frame_laytout); aprašykite veiksmus: protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_frame_laytout); p1 =(ImageView) findviewbyid(r.id.imageview1); p2 =(ImageView) findviewbyid(r.id.imageview2); p1.setonclicklistener(this); p2.setonclicklistener(this); public class FrameLaytoutActivity extends Activity implements View.OnClickListener { 12

87 jei šioje vietoje rodys klaidą (nes naudojate metodą, kuris dar nesukurtas), paspaudę pele ant žodžio implements, pasirinkite add implements public void onclick(view v) { // TODO Auto-generated method stub if (v.getid()==r.id.imageview1) { p1.setvisibility(view.gone); p2.setvisibility(view.visible); else { p1.setvisibility(view.visible); p2.setvisibility(view.gone); 8. Testuokite programą: Visas FrameLaytoutActivity.java failas: package com.example.framelayouttest; import android.app.activity; import android.os.bundle; import android.view.view; import android.widget.imageview; public class FrameLaytoutActivity extends Activity implements View.OnClickListener { ImageView p1, protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_frame_laytout); p1 =(ImageView) findviewbyid(r.id.imageview1); p2 =(ImageView) findviewbyid(r.id.imageview2); p1.setonclicklistener(this); public void onclick(view v) { // TODO Auto-generated method stub if (v.getid()==r.id.imageview1) { p1.setvisibility(view.gone); p2.setvisibility(view.visible); else { p1.setvisibility(view.visible); p2.setvisibility(view.gone); 13

88 Praktinis darbas Nr. 25 Žymės langelio (CheckBox) veikimas Darbo tikslas įterpti į mobilią aplikaciją žymės langelį, naudoti jo formatavimo gaires ir jų atributus. Objekto aktyvavimui naudoti sąlyginį sakinį. Darbo eiga: 1. Kurkite naują mobilią aplikaciją. 2. Aplikacijos lange patalpinkite du objektus teksto lauką (TextView) ir pasirinkimo langelį (CheckBox): <TextView android:layout_alignparentleft="true" android:layout_alignparenttop="true" android:layout_marginleft="20dp" android:layout_margintop="30dp" android:text="norėčiau kavos" /> <CheckBox android:text="su cukrumi" android:checked="false"/> Pastaba: parametras checked gali turėti dvi reikšmes: true (pažymėtas langelis) arba false (nepažymėtas langelis). 3. Redaguokite *.java failą, kuriame surašykite visus reikalingus veiksmus: atsidarykite failą redagavimui: package com.example.checkboxtest; import android.app.activity; import android.os.bundle; public class ChechBoxActivity extends Activity protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_chech_box); aprašykite kintamąjį c: public class CheckboxActivity extends Activity { CheckBox protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_checkbox); 14

89 ir jo veiksmus: public class CheckboxActivity extends Activity implements View.OnClickListener{ CheckBox protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_checkbox); c= (CheckBox) findviewbyid(r.id.checkbox); public void onclick(view v) { // TODO Auto-generated method stub automatiškai sugeneruotas metodas onclick tikrins ar checkbox jungiklis yra išjungtas ar public void onclick(view v) { CheckBox t= (CheckBox) v; if(t.ischecked()) { else { Priklausomai nuo to, ar langelis bus pažymėtas, ar ne, programa išves į ekraną pranešimą (Toast): if(t.ischecked()) { Toast.makeText(this, "Pasirinkote kavą su cukrumi.", Toast.LENGTH_SHORT).show(); else { Toast.makeText(this, "Pasirinkote kavą be cukraus.", Toast.LENGTH_SHORT).show(); 4. Testuokite programą: Paleidus vykdyti: Uždėjus varnelę: Nuėmus varnelę: 15

90 Praktinis darbas Nr. 26 Jungiklio (ToggleButton) veikimas Darbo tikslas įterpti į mobilią aplikaciją jungiklį, naudoti jo formatavimo gaires ir jų atributus. Objekto aktyvavimui naudoti sąlyginį sakinį. Darbo eiga: 1. Kurkite naują mobilią aplikaciją. 2. Aplikacijos lange patalpinkite du objektus teksto lauką (TextView) ir jungiklį (ToggleButton): <TextView android:layout_alignparentleft="true" android:layout_alignparenttop="true" android:layout_marginleft="30dp" android:layout_margintop="30dp" android:text="apšvietimas:" /> <ToggleButton android:text="togglebutton" /> 3. Redaguokite *.java failą, kuriame surašysite visus veiksmus (padarysite taip, kad paspaudus jungiklį, programa pakeistų ekrano foną iš baltos spalvos į tamsią ir atvirkščiai): atsidarykite failą redagavimui: package com.example.toggletest; import android.app.activity; import android.os.bundle; public class ToggleActivity extends Activity protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_toggle); aprašykite ToggleButton kintamąjį t ir jo veiksmus: public class ToggleActivity extends Activity implements CompoundButton.OnCheckedChangeListener{ ToggleButton protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_toggle); t= (ToggleButton) findviewbyid(r.id.jungiklis); public void oncheckedchanged (CompoundButton compoundbutton, boolean b){ 16

91 Naujai sukurtame metode oncheckedchanged bus tikrinama loginio kintamojo b reikšmė (true arba false) jungiklis įjungtas arba išjungtas ir priklausomai nuo jungiklio būsenos keičiama fono spalva. Kadangi veiksme dalyvauja fonas, tai jam turi būti suteikta identifikavimo žymė: <RelativeLayout xmlns:android=" xmlns:tools=" android:id="@+id/maketas" tools:context="${relativepackage.${activityclass" > panaudodami funkciją IF: public void oncheckedchanged (CompoundButton compoundbutton, boolean b){ if(b) { else { aprašykite mygtuko veiksmus (fonas juodas arba baltas). Tam papildomai įveskite maketo kintamąjį r: RelativeLayout r; ToggleButton protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_toggle); t= (ToggleButton)findViewById(R.id.jungiklis); r= (RelativeLayout) findviewbyid(r.id.maketas); public void oncheckedchanged (CompoundButton compoundbutton, boolean b){ if(b) { r.setbackgroundcolor(color.black); else { r.setbackgroundcolor(color.white); kad ši funkcija veiktų: protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_toggle); t= (ToggleButton)findViewById(R.id.jungiklis); r= (RelativeLayout) findviewbyid(r.id.maketas); t.setoncheckedchangelistener(this); 17

92 4. Testuokite programą: Visas *.java failas: package com.example.toggletest; import android.app.activity; import android.graphics.color; import android.os.bundle; import android.widget.compoundbutton; import android.widget.relativelayout; import android.widget.togglebutton; public class ToggleButtonActivity extends Activity implements CompoundButton.OnCheckedChangeListener{ RelativeLayout r; ToggleButton protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_toggle_button); t= (ToggleButton)findViewById(R.id.jungiklis); r= (RelativeLayout) findviewbyid(r.id.maketas); t.setoncheckedchangelistener(this); public void oncheckedchanged (CompoundButton compoundbutton, boolean b){ if(b) { r.setbackgroundcolor(color.black); else { r.setbackgroundcolor(color.white); 18

93 Praktinis darbas Nr. 27 Sąrašas su piktogramomis Darbo tikslas informaciją mobilioje aplikacijoje pateikti sąrašu. Darbo eiga: 1. Kurkite naują mobilią aplikaciją. 2. Aplikacijos lange patalpinkite sąrašo objektą: <RelativeLayout xmlns:android=" xmlns:tools=" tools:context="${relativepackage.${activityclass" > <ListView android:layout_alignparentleft="true" android:layout_alignparenttop="true" > </ListView> </RelativeLayout> 3. Maketų aplanke sukurkite naują maketo failą single_row, kuriame nurodysite kaip turi atrodyti viena sąrašo eilutė: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:orientation="horizontal" > <ImageView android:layout_gravity="center_horizontal top" /> <TextView android:text="large Text" android:textappearance="?android:attr/textappearancelarge" android:layout_gravity="center_horizontal top" /> </LinearLayout> 19

94 4. Užrašą Large Text galite ištrinti, palikdami tik kabutes, kurios nurodys teksto vietą eilutėje: <TextView android:text="" android:textappearance="?android:attr/textappearancelarge" android:layout_gravity="center_horizontal top" /> 5. Turite du *.xml maketo failus. Viename aprašėte kaip atrodys visas sąrašas, kitame kaip atrodys viena sąrašo eilutė. Dabar *.java faile sujunkite tuos du failus, aprašydami veiksmus: aprašykite sąrašą: public class PiktogramuSarasasMainActivity extends Activity { String[] sav_dienos={"pirmadienis", "Antradienis", "Trečiadienis", "Ketvirtadienis", "Penktadienis", "Šeštadienis", protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_piktogramu_sarasas_main); aprašykite sąrašo kintamąjį: public class PiktogramuSarasasMainActivity extends Activity { String[] sav_dienos={"pirmadienis", "Antradienis", "Trečiadienis", "Ketvirtadienis", "Penktadienis", "Šeštadienis", "Sekmadienis"; ListView protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_piktogramu_sarasas_main); l=(listview) findviewbyid(r.id.listview); aprašykite sąrašo išvedimą į ekraną: protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_piktogramu_sarasas_main); l=(listview) findviewbyid(r.id.listview); ArrayAdapter<String> adapter=new ArrayAdapter<String> (this, R.layout.single_row, R.id.textView, sav_dienos); l.setadapter(adapter); 6. Testuokite programą: 20

Užduotys mokiniams tema Programavimas mobiliesiems įrenginiams. 1 dalis

Užduotys mokiniams tema Programavimas mobiliesiems įrenginiams. 1 dalis Projektas,,Pedagogų kvalifikacijos tobulinimo ir perkvalifikavimo sistemos plėtra (III etapas), Nr. VP1-2.2-ŠMM-02-V-01-010 Projekto vykdytojas Ugdymo plėtotės centras Stažuotės vieta UAB DEVBRIDGE LT

More information

El. pašto konfigūravimas

El. pašto konfigūravimas El. pašto konfigūravimas Outlook Express (integruota Windows XP) elektroninio pašto klientas Žemiau pateikta instrukcija, kaip sukonfigūruoti savo elektroninį paštą vartotojams, turintiems elektroninio

More information

Elektroninis.lt šakninių sertifikatų diegimas

Elektroninis.lt šakninių sertifikatų diegimas Elektroninis.lt šakninių sertifikatų diegimas Ši instrukcija aprašo, kaip į kompiuterį įdiegti šakninius elektroninis.lt sertifikatus. Diegimo darbus galima atlikti turint kompiuterio administratoriaus

More information

HTML dokumentai. Praktinės užduotys

HTML dokumentai. Praktinės užduotys HTML dokumentai Praktinės užduotys 1. DzSoft PHP Editor šablonai Pakeiskite HTML šabloną į: ... Programos

More information

Amadeus On-Line Helpdesk

Amadeus On-Line Helpdesk Amadeus On-Line Helpdesk Vartotojo instrukcija Skirta kelionių agentūroms Turinys Įžanga... 3 Jungimasis prie Amadeus Helpdesk... 3 Patarimai ir pastabos... 7 Dokumento valdymas 2007 Apsauga Viešas Įmon

More information

Mobile Application Development Lab [] Simple Android Application for Native Calculator. To develop a Simple Android Application for Native Calculator.

Mobile Application Development Lab [] Simple Android Application for Native Calculator. To develop a Simple Android Application for Native Calculator. Simple Android Application for Native Calculator Aim: To develop a Simple Android Application for Native Calculator. Procedure: Creating a New project: Open Android Stdio and then click on File -> New

More information

CSE 660 Lab 3 Khoi Pham Thanh Ho April 19 th, 2015

CSE 660 Lab 3 Khoi Pham Thanh Ho April 19 th, 2015 CSE 660 Lab 3 Khoi Pham Thanh Ho April 19 th, 2015 Comment and Evaluation: This lab introduces us about Android SDK and how to write a program for Android platform. The calculator is pretty easy, everything

More information

ITU- FAO- DOA- TRCSL. Training on. Innovation & Application Development for E- Agriculture. Shared Preferences

ITU- FAO- DOA- TRCSL. Training on. Innovation & Application Development for E- Agriculture. Shared Preferences ITU- FAO- DOA- TRCSL Training on Innovation & Application Development for E- Agriculture Shared Preferences 11 th - 15 th December 2017 Peradeniya, Sri Lanka Shahryar Khan & Imran Tanveer, ITU Experts

More information

Parengė ITMM Artūras Šakalys 1

Parengė ITMM Artūras Šakalys 1 2014.02.02 Parengė ITMM Artūras Šakalys 1 2014.02.02 Parengė ITMM Artūras Šakalys 2 Kaip suprantame masyvą? Pavyzdys: Peteliškių šeima; Gėlių laukas; 2014.02.02 Parengė ITMM Artūras Šakalys 3 Kaip suprasti

More information

M.A.D ASSIGNMENT # 2 REHAN ASGHAR BSSE 15126

M.A.D ASSIGNMENT # 2 REHAN ASGHAR BSSE 15126 M.A.D ASSIGNMENT # 2 REHAN ASGHAR BSSE 15126 Submitted to: Sir Waqas Asghar MAY 23, 2017 SUBMITTED BY: REHAN ASGHAR Intent in Android What are Intent? An Intent is a messaging object you can use to request

More information

JAVA pagrindai Lek. Liudas Drejeris

JAVA pagrindai Lek. Liudas Drejeris JAVA pagrindai Lek. Liudas Drejeris Programa (1) Programa, tai eilė instrukcijų (vadinamų programiniais sakiniais), kurie vykdomi paeiliui, kol gaunamas norimas rezultatas. Programa (2) Programa (2) /*

More information

TextView Control. EditText Control. TextView Attributes. android:id - This is the ID which uniquely identifies the control.

TextView Control. EditText Control. TextView Attributes. android:id - This is the ID which uniquely identifies the control. A TextView displays text to the user. TextView Attributes TextView Control android:id - This is the ID which uniquely identifies the control. android:capitalize - If set, specifies that this TextView has

More information

COMP4521 EMBEDDED SYSTEMS SOFTWARE

COMP4521 EMBEDDED SYSTEMS SOFTWARE COMP4521 EMBEDDED SYSTEMS SOFTWARE LAB 1: DEVELOPING SIMPLE APPLICATIONS FOR ANDROID INTRODUCTION Android is a mobile platform/os that uses a modified version of the Linux kernel. It was initially developed

More information

Kas yra masyvas? Skaičių masyvo A reikšmės: Elementų indeksai (numeriai): Užrašymas Turbo Paskaliu: A[1] A[2] A[3] A[4] A[5]

Kas yra masyvas? Skaičių masyvo A reikšmės: Elementų indeksai (numeriai): Užrašymas Turbo Paskaliu: A[1] A[2] A[3] A[4] A[5] Masyvas 2013 1 Vienmatis masyvas Veiksmai su masyvo elementais: reikšmių priskyrimas ir išvedimas, paieška, rikiavimas. Masyvų perdavimas procedūros (funkcijos) parametrais. 2 Kas yra masyvas? Masyvu vadinamas

More information

Android UI Development

Android UI Development Android UI Development Android UI Studio Widget Layout Android UI 1 Building Applications A typical application will include: Activities - MainActivity as your entry point - Possibly other activities (corresponding

More information

Our First Android Application

Our First Android Application Mobile Application Development Lecture 04 Imran Ihsan Our First Android Application Even though the HelloWorld program is trivial in introduces a wealth of new ideas the framework, activities, manifest,

More information

ios Uždara operacinė sistema skirta tik Apple įrenginiams: iphone ipad ipod touch Apple TV

ios Uždara operacinė sistema skirta tik Apple įrenginiams: iphone ipad ipod touch Apple TV ios Uždara operacinė sistema skirta tik Apple įrenginiams: iphone ipad ipod touch Apple TV Pagrindas OS X, skirtas ARM įrenginiams Programavimo aplinka: XCode ir Objective-C Programavimo kompiuteris -

More information

Create Parent Activity and pass its information to Child Activity using Intents.

Create Parent Activity and pass its information to Child Activity using Intents. Create Parent Activity and pass its information to Child Activity using Intents. /* MainActivity.java */ package com.example.first; import android.os.bundle; import android.app.activity; import android.view.menu;

More information

Android Beginners Workshop

Android Beginners Workshop Android Beginners Workshop at the M O B IL E M O N D AY m 2 d 2 D E V E L O P E R D A Y February, 23 th 2010 Sven Woltmann, AndroidPIT Sven Woltmann Studied Computer Science at the TU Ilmenau, 1994-1999

More information

Paprastų lentelių kūrimas

Paprastų lentelių kūrimas HTML lentelės Lentelės Informacijos pateikimas HTML-dokumentuose lentelių pagalba yra vienas iš dažniausiai naudojamų. HTML kalboje lentelės yra naudojamos ne tik tradiciškai, kaip duomenų pateikimo metodas,

More information

UI (User Interface) overview Supporting Multiple Screens Touch events and listeners

UI (User Interface) overview Supporting Multiple Screens Touch events and listeners http://www.android.com/ UI (User Interface) overview Supporting Multiple Screens Touch events and listeners User Interface Layout The Android user interface (UI) consists of screen views (one or more viewgroups

More information

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar Mobile Application Development Higher Diploma in Science in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology

More information

VERSLO KLIENTŲ APTARNAVIMAS TEL

VERSLO KLIENTŲ APTARNAVIMAS TEL paslaugos Virtualus biuras valdymas ir naudojimas VERSLO KLIENTŲ APTARNAVIMAS TEL. 1816 Skambučio kaina tel. 1816 TEO tinkle 0,16 Lt/min., sujungimo mokestis 0,12 Lt; iš Omnitel, Bitė Lietuva ir Tele2

More information

Lampiran Program : Res - Layout Activity_main.xml

More information

Android App Development. Mr. Michaud ICE Programs Georgia Institute of Technology

Android App Development. Mr. Michaud ICE Programs Georgia Institute of Technology Android App Development Mr. Michaud ICE Programs Georgia Institute of Technology Android Operating System Created by Android, Inc. Bought by Google in 2005. First Android Device released in 2008 Based

More information

Let s take a display of HTC Desire smartphone as an example. Screen size = 3.7 inches, resolution = 800x480 pixels.

Let s take a display of HTC Desire smartphone as an example. Screen size = 3.7 inches, resolution = 800x480 pixels. Screens To begin with, here is some theory about screens. A screen has such physical properties as size and resolution. Screen size - a distance between two opposite corners of the screens, usually measured

More information

TPCT s College of Engineering, Osmanabad. Laboratory Manual SDL-II. Mobile Application Development (Android) For. Third Year Students (CSE)

TPCT s College of Engineering, Osmanabad. Laboratory Manual SDL-II. Mobile Application Development (Android) For. Third Year Students (CSE) TPCT s College of Engineering, Osmanabad Laboratory Manual SDL-II Mobile Application Development (Android) For Third Year Students (CSE) Manual Prepared by Prof. Sujata A. Gaikwad Author COE, Osmanabad

More information

Laying Out Controls in Containers

Laying Out Controls in Containers CHAPTER 3 Laying Out Controls in Containers A container is a view used to contain other views. Android offers a collection of view classes that act as containers for views. These container classes are

More information

Programming with Android: Introduction. Layouts. Dipartimento di Informatica: Scienza e Ingegneria Università di Bologna

Programming with Android: Introduction. Layouts. Dipartimento di Informatica: Scienza e Ingegneria Università di Bologna Programming with Android: Introduction Layouts Luca Bedogni Marco Di Felice Dipartimento di Informatica: Scienza e Ingegneria Università di Bologna Views: outline Main difference between a Drawable and

More information

Basic GUI elements - exercises

Basic GUI elements - exercises Basic GUI elements - exercises https://developer.android.com/studio/index.html LIVE DEMO Please create a simple application, which will be used to calculate the area of basic geometric figures. To add

More information

Chapter 8 Positioning with Layouts

Chapter 8 Positioning with Layouts Introduction to Android Application Development, Android Essentials, Fifth Edition Chapter 8 Positioning with Layouts Chapter 8 Overview Create user interfaces in Android by defining resource files or

More information

Android UI: Overview

Android UI: Overview 1 Android UI: Overview An Activity is the front end component and it can contain screens. Android screens are composed of components or screen containers and components within the containers Screen containers

More information

Android HelloWorld - Example. Tushar B. Kute,

Android HelloWorld - Example. Tushar B. Kute, Android HelloWorld - Example Tushar B. Kute, http://tusharkute.com Anatomy of Android Application Anatomy of Android Application Java This contains the.java source files for your project. By default, it

More information

WiFi komplekto. Vartotojo vadovas

WiFi komplekto. Vartotojo vadovas WiFi komplekto Vartotojo vadovas SAUGUMO REIKALAVIMAI Pastabos: Nedėkite ir neįrenginėkite įrangos tiesioginiuose saulės spinduliuose ar prie kitų šilumos šaltinių. Neįrenginėkite įrangos drėgnoje vietoje

More information

Produced by. Mobile Application Development. Eamonn de Leastar

Produced by. Mobile Application Development. Eamonn de Leastar Mobile Application Development Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie A First

More information

Getting Started. Dr. Miguel A. Labrador Department of Computer Science & Engineering

Getting Started. Dr. Miguel A. Labrador Department of Computer Science & Engineering Getting Started Dr. Miguel A. Labrador Department of Computer Science & Engineering labrador@csee.usf.edu http://www.csee.usf.edu/~labrador 1 Goals Setting up your development environment Android Framework

More information

Paveikslėliai. Lekt. dr. Pijus Kasparaitis m. m. pavasario semestras.

Paveikslėliai. Lekt. dr. Pijus Kasparaitis m. m. pavasario semestras. Paveikslėliai Lekt. dr. Pijus Kasparaitis pkasparaitis@yahoo.com 2008-2009 m. m. pavasario semestras Klasė Image Priklauso paketui java.awt Abstrakti klasė paveldėta iš Object Tai visų grafinių paveikslėlių

More information

2017 m. pagrindinės sesijos informacinių technologijų valstybinio brandos egzamino programavimo užduoties galimi sprendimai

2017 m. pagrindinės sesijos informacinių technologijų valstybinio brandos egzamino programavimo užduoties galimi sprendimai Pavyzdys A 2017 m. pagrindinės sesijos informacinių technologijų valstybinio brandos egzamino programavimo užduoties galimi sprendimai int konvertuojamas(int skaic, int id); char konvertuojamas2(int dal);

More information

Android Apps Development for Mobile and Tablet Device (Level I) Lesson 2

Android Apps Development for Mobile and Tablet Device (Level I) Lesson 2 Workshop 1. Compare different layout by using Change Layout button (Page 1 5) Relative Layout Linear Layout (Horizontal) Linear Layout (Vertical) Frame Layout 2. Revision on basic programming skill - control

More information

ANDROID USER INTERFACE

ANDROID USER INTERFACE 1 ANDROID USER INTERFACE Views FUNDAMENTAL UI DESIGN Visual interface element (controls or widgets) ViewGroup Contains multiple widgets. Layouts inherit the ViewGroup class Activities Screen being displayed

More information

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Managing Screen Orientation

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Managing Screen Orientation EMBEDDED SYSTEMS PROGRAMMING 2016-17 Application Tip: Managing Screen Orientation ORIENTATIONS Portrait Landscape Reverse portrait Reverse landscape ON REVERSE PORTRAIT Android: all four orientations are

More information

C programavimo kalba. 3 paskaita (Sąlygos ir ciklo operatoriai, funkcija scanf() )

C programavimo kalba. 3 paskaita (Sąlygos ir ciklo operatoriai, funkcija scanf() ) C programavimo kalba 3 paskaita (Sąlygos ir ciklo operatoriai, funkcija scanf() ) Sąlygos operatorius if - else Sąlygos operatoriai skirti perduoti programos vykdymą vienai ar kitai programos šakai. Operatorius

More information

Creating a User Interface

Creating a User Interface Creating a User Interface Developing for Android devices is a complicated process that requires precision to work with. Android runs on numerous devices from smart-phones to tablets. Instead of using a

More information

User Interface Development in Android Applications

User Interface Development in Android Applications ITU- FAO- DOA- TRCSL Training on Innovation & Application Development for E- Agriculture User Interface Development in Android Applications 11 th - 15 th December 2017 Peradeniya, Sri Lanka Shahryar Khan

More information

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar Mobile Application Development Higher Diploma in Science in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology

More information

Android Application Development. By : Shibaji Debnath

Android Application Development. By : Shibaji Debnath Android Application Development By : Shibaji Debnath About Me I have over 10 years experience in IT Industry. I have started my career as Java Software Developer. I worked in various multinational company.

More information

Android Layout Types

Android Layout Types Android Layout Types Android Linear Layout Android LinearLayout is a view group that aligns all children in either vertically or horizontally. android:divider - This is drawable to use as a vertical divider

More information

Apletai (įskiepiai) Lekt. dr. Pijus Kasparaitis m. m. pavasario semestras.

Apletai (įskiepiai) Lekt. dr. Pijus Kasparaitis m. m. pavasario semestras. Apletai (įskiepiai) Lekt. dr. Pijus Kasparaitis pkasparaitis@yahoo.com 2008-2009 m. m. pavasario semestras Java grafinės bibliotekos AWT (Abstract Window Toolkit) Swing 2009.04.09 P.Kasparaitis. Objektinis

More information

Statistics http://www.statista.com/topics/840/smartphones/ http://www.statista.com/topics/876/android/ http://www.statista.com/statistics/271774/share-of-android-platforms-on-mobile-devices-with-android-os/

More information

Come to the TypeScript

Come to the TypeScript Come to the TypeScript we have type hinting! Sergej Kurakin Sergej Kurakin Amžius: 36 Dirbu: NFQ Technologies Pareigos: Programuotojas Programuoti pradėjau mokytis 1996 metais. Programuotoju dirbu nuo

More information

Introduction to Android Development

Introduction to Android Development Introduction to Android Development What is Android? Android is the customizable, easy to use operating system that powers more than a billion devices across the globe - from phones and tablets to watches,

More information

Adaptation of materials: dr Tomasz Xięski. Based on presentations made available by Victor Matos, Cleveland State University.

Adaptation of materials: dr Tomasz Xięski. Based on presentations made available by Victor Matos, Cleveland State University. Creating dialogs Adaptation of materials: dr Tomasz Xięski. Based on presentations made available by Victor Matos, Cleveland State University. Portions of this page are reproduced from work created and

More information

Comparative Study on Layout and Drawable Resource Behavior in Android for Supporting Multi Screen

Comparative Study on Layout and Drawable Resource Behavior in Android for Supporting Multi Screen International Journal of Innovative Research in Computer Science & Technology (IJIRCST) ISSN: 2347-5552, Volume 2, Issue 3, May - 2014 Comparative Study on Layout and Drawable Resource Behavior in Android

More information

Computer Science E-76 Building Mobile Applications

Computer Science E-76 Building Mobile Applications Computer Science E-76 Building Mobile Applications Lecture 3: [Android] The SDK, Activities, and Views February 13, 2012 Dan Armendariz danallan@mit.edu 1 http://developer.android.com Android SDK and NDK

More information

Sizing and Positioning

Sizing and Positioning CS 193A Layout This document is copyright (C) Marty Stepp and Stanford Computer Science. Licensed under Creative Commons Attribution 2.5 License. All rights reserved. Sizing and Positioning How does the

More information

Mobile Software Development for Android - I397

Mobile Software Development for Android - I397 1 Mobile Software Development for Android - I397 IT COLLEGE, ANDRES KÄVER, 2015-2016 EMAIL: AKAVER@ITCOLLEGE.EE WEB: HTTP://ENOS.ITCOLLEGE.EE/~AKAVER/2015-2016/DISTANCE/ANDROID SKYPE: AKAVER Layout fundamentals

More information

WVGA :9 None. This is the only supported resolution for Windows Phone OS 7.1.

WVGA :9 None. This is the only supported resolution for Windows Phone OS 7.1. Windows Phone Palaikomi ekranai Resolution Resolution Aspect ratio Delta from Windows Phone OS 7.1 Scaled resolution WVGA 480 800 15:9 None. This is the only supported resolution for Windows Phone OS 7.1.

More information

ANDROID PROGRAMS DAY 3

ANDROID PROGRAMS DAY 3 ANDROID PROGRAMS DAY 3 //Android project to navigate from first page to second page using Intent Step 1: Create a new project Step 2: Enter necessary details while creating project. Step 3: Drag and drop

More information

User Interface Development. CSE 5236: Mobile Application Development Instructor: Adam C. Champion Course Coordinator: Dr.

User Interface Development. CSE 5236: Mobile Application Development Instructor: Adam C. Champion Course Coordinator: Dr. User Interface Development CSE 5236: Mobile Application Development Instructor: Adam C. Champion Course Coordinator: Dr. Rajiv Ramnath 1 Outline UI Support in Android Fragments 2 UI Support in the Android

More information

WWW aplikacijų saugumas 2

WWW aplikacijų saugumas 2 WWW aplikacijų saugumas 2 Rolandas Griškevičius rolandas.griskevicius@fm.vgtu.lt MSN: rgrisha@hotmail.com http://fmf.vgtu.lt/~rgriskevicius 2010-11-26 R. Griškevičius, Saugus programavimas, VGTU, 2009

More information

Hello World. Lesson 1. Android Developer Fundamentals. Android Developer Fundamentals. Layouts, and. NonCommercial

Hello World. Lesson 1. Android Developer Fundamentals. Android Developer Fundamentals. Layouts, and. NonCommercial Hello World Lesson 1 This work is licensed This under work a Creative is is licensed Commons under a a Attribution-NonCommercial Creative 4.0 Commons International Attribution- License 1 NonCommercial

More information

Android Workshop: Model View Controller ( MVC):

Android Workshop: Model View Controller ( MVC): Android Workshop: Android Details: Android is framework that provides java programmers the ability to control different aspects of smart devices. This interaction happens through the Android SDK (Software

More information

Open Lecture Mobile Programming. Intro to Material Design

Open Lecture Mobile Programming. Intro to Material Design Open Lecture Mobile Programming Intro to Material Design Agenda Introduction to Material Design Applying a Material Theme Toolbar/Action Bar Navigation Drawer RecyclerView CardView Support Design Widgets/Tools

More information

Informacijos apsaugos standartai serija

Informacijos apsaugos standartai serija Informacijos apsaugos standartai 27000 serija Pareng : Marius Celskis www.isec.lt 2007 m. balandis 12 d. ISO 27000 serija 2 iš 9 Tarptautin standartizacijos organizacija ISO informacijos apsaugos standartizavimui

More information

Programming with Android: Layouts, Widgets and Events. Dipartimento di Scienze dell Informazione Università di Bologna

Programming with Android: Layouts, Widgets and Events. Dipartimento di Scienze dell Informazione Università di Bologna Programming with Android: Layouts, Widgets and Events Luca Bedogni Marco Di Felice Dipartimento di Scienze dell Informazione Università di Bologna Outline Components of an Activity ViewGroup: definition

More information

Paveikslėlių sąrašas

Paveikslėlių sąrašas TURINYS 1 1. Elektroninis paštas...3 1.1. Įvadas...3 1.2. Bendrieji principai...3 1.3. Microsoft Outlook Express programą...5 1.3.1. Darbo lango elementai...6 1.3.2. Elektroninio pašto laišku išsiuntimas

More information

DUOMENŲ STRUKTŪROS IR ALGORITMAI. Rūšiavimo algoritmai (įterpimo, burbulo, išrinkimo)

DUOMENŲ STRUKTŪROS IR ALGORITMAI. Rūšiavimo algoritmai (įterpimo, burbulo, išrinkimo) DUOMENŲ STRUKTŪROS IR ALGORITMAI Rūšiavimo algoritmai (įterpimo, burbulo, išrinkimo) Rūšiavimo veiksmas Kasdieniniame gyvenime mes dažnai rūšiuojame: Failus kataloguose Katalogus lokaliame diske Kasdienines

More information

ONSCREENKEYS 5. Windows XP / Windows Vista / Windows 7 / Windows 8 / Windows 10

ONSCREENKEYS 5. Windows XP / Windows Vista / Windows 7 / Windows 8 / Windows 10 ONSCREENKEYS 5 Windows XP / Windows Vista / Windows 7 / Windows 8 / Windows 10 PREKĖS APRAŠYMAS Šis intelektualus ekrane klaviatūra su virtualių pelės paspaudimu funkcijų ir kalbos galia leidžia greitai

More information

Lecture 14. Android Application Development

Lecture 14. Android Application Development Lecture 14 Android Application Development Notification Instructor Muhammad Owais muhammad.owais@riphah.edu.pk Cell: 03215500223 Notifications Used to notify user for events Three general forms of Notifications

More information

C++ programavimo kalba. Konstruktorius, destruktorius, klasių metodų modifikatoriai, objektų masyvai (4 paskaita)

C++ programavimo kalba. Konstruktorius, destruktorius, klasių metodų modifikatoriai, objektų masyvai (4 paskaita) C++ programavimo kalba Konstruktorius, destruktorius, klasių metodų modifikatoriai, objektų masyvai (4 paskaita) Konstruktorius Sukuriant objektą, jo duomenims paprastai turi būti priskiriamos pradinės

More information

2-3 PASKAITOS. Paprasčiausia programa:

2-3 PASKAITOS. Paprasčiausia programa: 2-3 PASKAITOS Turinys: Paprasčiausios programos pavyzdys. Darbas su programavimo terpėmis. Duomenys. Duomenų tipai ir charakteristikos. Paprasčiausia įvestis/išvestis. Paprasčiausia programa: /* Pirmoji

More information

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Saving State

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Saving State EMBEDDED SYSTEMS PROGRAMMING 2016-17 Application Tip: Saving State THE PROBLEM How to save the state (of a UI, for instance) so that it survives even when the application is closed/killed The state should

More information

LAMPIRAN PROGRAM. public class Listdata_adiktif extends ArrayAdapter<ModelData_adiktif> {

LAMPIRAN PROGRAM. public class Listdata_adiktif extends ArrayAdapter<ModelData_adiktif> { 1 LAMPIRAN PROGRAM JAVA Listdata_adiktif.java package com.example.win.api.adapter; import android.content.context; import android.support.annotation.nonnull; import android.view.layoutinflater; import

More information

ActionBar. import android.support.v7.app.actionbaractivity; public class MyAppBarActivity extends ActionBarActivity { }

ActionBar. import android.support.v7.app.actionbaractivity; public class MyAppBarActivity extends ActionBarActivity { } Android ActionBar import android.support.v7.app.actionbaractivity; public class MyAppBarActivity extends ActionBarActivity { Layout, activity.xml

More information

Graphical User Interfaces

Graphical User Interfaces Graphical User Interfaces Some suggestions Avoid displaying too many things Well-known anti-patterns Display useful content on your start screen Use action bars to provide consistent navigation Keep your

More information

PHP PROGRAMOS EIGOS VYKDYMO VALDYMAS

PHP PROGRAMOS EIGOS VYKDYMO VALDYMAS PHP PROGRAMOS EIGOS VYKDYMO VALDYMAS Sąlygos sakiniai PHP skriptų vykdymo eigą galite valdyti naudodami sąlygos sakinius. Sąlygos sakiniai tai loginės struktūros, kuriose saugomas kodas, įvykdomas įgyvendinus

More information

CS 528 Mobile and Ubiquitous Computing Lecture 2a: Android UI Design in XML + Examples. Emmanuel Agu

CS 528 Mobile and Ubiquitous Computing Lecture 2a: Android UI Design in XML + Examples. Emmanuel Agu CS 528 Mobile and Ubiquitous Computing Lecture 2a: Android UI Design in XML + Examples Emmanuel Agu Android UI Design in XML Recall: Files Hello World Android Project XML file used to design Android UI

More information

HTML dokumentai aprašo tinklalapius. HTML dokumentus sudaro HTML gairės ir grynas tekstas. HTML dokumentai vadinami tinklalapiais.

HTML dokumentai aprašo tinklalapius. HTML dokumentus sudaro HTML gairės ir grynas tekstas. HTML dokumentai vadinami tinklalapiais. 1 P u s l a p i s HTML dokumentai HTML kalba HTML yra kalba, naudojama tinklalapių aprašymui. HTML kilo iš HyperText Markup Language. HTML nėra programavimo kalba, ji yra žymėjimo kalba. Žymėjimo kalba

More information

Fragment Example Create the following files and test the application on emulator or device.

Fragment Example Create the following files and test the application on emulator or device. Fragment Example Create the following files and test the application on emulator or device. File: AndroidManifest.xml

More information

Microsoft Office PowerPoint 2010 gidas

Microsoft Office PowerPoint 2010 gidas Microsoft Office PowerPoint 2010 gidas Turinys Apie Microsoft Powerpoint 2010... 1 Patarimai, kaip sukurti gerą pateiktį... 2 Standartinio maketo naudojimas... 3 Pasirinkto maketo kūrimas... 4 SmartArt

More information

Kodėl programą sudaro daug failų? Sukurtos tipinės funkcijų galėtų būti panaudojamos dar kartą; Sudaroma aiškesnė programos struktūra; Sudaroma galimy

Kodėl programą sudaro daug failų? Sukurtos tipinės funkcijų galėtų būti panaudojamos dar kartą; Sudaroma aiškesnė programos struktūra; Sudaroma galimy C programavimo kalba 12 paskaita (Daugiafailinės programos, laiko ir datos funkcijos) Kodėl programą sudaro daug failų? Sukurtos tipinės funkcijų galėtų būti panaudojamos dar kartą; Sudaroma aiškesnė programos

More information

Projektas. .h failai Header failai (interface) .m failai Pačios programos failai ( .xib /.storyboard Vartotojo sąsajos failai

Projektas. .h failai Header failai (interface) .m failai Pačios programos failai ( .xib /.storyboard Vartotojo sąsajos failai ios Projektas.h failai Header failai (interface).m failai Pačios programos failai (.xib /.storyboard Vartotojo sąsajos failai AppDelegate.h / AppDelegate.m aplikacijos pradiniai startavimo prpograminiai

More information

<uses-permission android:name="android.permission.internet"/>

<uses-permission android:name=android.permission.internet/> Chapter 11 Playing Video 11.1 Introduction We have discussed how to play audio in Chapter 9 using the class MediaPlayer. This class can also play video clips. In fact, the Android multimedia framework

More information

Group B: Assignment No 8. Title of Assignment: To verify the operating system name and version of Mobile devices.

Group B: Assignment No 8. Title of Assignment: To verify the operating system name and version of Mobile devices. Group B: Assignment No 8 Regularity (2) Performance(5) Oral(3) Total (10) Dated Sign Title of Assignment: To verify the operating system name and version of Mobile devices. Problem Definition: Write a

More information

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar Mobile Application Development Higher Diploma in Science in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology

More information

COMP61242: Task /04/18

COMP61242: Task /04/18 COMP61242: Task 2 1 16/04/18 1. Introduction University of Manchester School of Computer Science COMP61242: Mobile Communications Semester 2: 2017-18 Laboratory Task 2 Messaging with Android Smartphones

More information

Introductory Android Development

Introductory Android Development Introductory Android Development 152-163 Notes Quick Links & Text References Introduction Pages Layout Concepts Pages Layout Types Pages 35 37 XML Overview Pages Common Attributes Layout Height & Width

More information

A view is a widget that has an appearance on screen. A view derives from the base class android.view.view.

A view is a widget that has an appearance on screen. A view derives from the base class android.view.view. LAYOUTS Views and ViewGroups An activity contains Views and ViewGroups. A view is a widget that has an appearance on screen. A view derives from the base class android.view.view. One or more views can

More information

Android Apps Development for Mobile and Tablet Device (Level I) Lesson 4. Workshop

Android Apps Development for Mobile and Tablet Device (Level I) Lesson 4. Workshop Workshop 1. Create an Option Menu, and convert it into Action Bar (Page 1 8) Create an simple Option Menu Convert Option Menu into Action Bar Create Event Listener for Menu and Action Bar Add System Icon

More information

MAD ASSIGNMENT NO 2. Submitted by: Rehan Asghar BSSE AUGUST 25, SUBMITTED TO: SIR WAQAS ASGHAR Superior CS&IT Dept.

MAD ASSIGNMENT NO 2. Submitted by: Rehan Asghar BSSE AUGUST 25, SUBMITTED TO: SIR WAQAS ASGHAR Superior CS&IT Dept. MAD ASSIGNMENT NO 2 Submitted by: Rehan Asghar BSSE 7 15126 AUGUST 25, 2017 SUBMITTED TO: SIR WAQAS ASGHAR Superior CS&IT Dept. Android Widgets There are given a lot of android widgets with simplified

More information

Topics of Discussion

Topics of Discussion Reference CPET 565 Mobile Computing Systems CPET/ITC 499 Mobile Computing Fragments, ActionBar and Menus Part 3 of 5 Android Programming Concepts, by Trish Cornez and Richard Cornez, pubslihed by Jones

More information

Redis Ma as, greitas, galingas. Specialiai VilniusPHP

Redis Ma as, greitas, galingas. Specialiai VilniusPHP Redis Ma as, greitas, galingas Specialiai VilniusPHP 2013.06.06 Sergej Kurakin Na, Jūs mane jau nekarta matėte, tai nieko nesakysiu apie save. Kaip aš susipa inau! Tai buvo prieš keletą metų! Projektas

More information

Programming Android UI. J. Serrat Software Design December 2017

Programming Android UI. J. Serrat Software Design December 2017 Programming Android UI J. Serrat Software Design December 2017 Preliminaries : Goals Introduce basic programming Android concepts Examine code for some simple examples Limited to those relevant for the

More information

C programavimo kalba. 5 paskaita (Funkcijos, masyvai)

C programavimo kalba. 5 paskaita (Funkcijos, masyvai) C programavimo kalba 5 paskaita (Funkcijos, masyvai) Funkcijų pavyzdys // Skaičių lyginimo programa #include void pmax(int, int); /* prototipas */ int main() {int i, j; for (i = -10; i

More information

PAŽINTIS SU PROGRAMŲ LIETUVINIMU. Gintautas Grigas

PAŽINTIS SU PROGRAMŲ LIETUVINIMU. Gintautas Grigas PAŽINTIS SU PROGRAMŲ LIETUVINIMU Gintautas Grigas el. p. Gintautas.Grigas@mii.vu.lt Programos vertimas į kitą kalbą ir jos pritaikymas tos kalbos aplinkai vadinamas lokalizavimu. Atskiras lokalizavimo

More information

Java & Android. Java Fundamentals. Madis Pink 2016 Tartu

Java & Android. Java Fundamentals. Madis Pink 2016 Tartu Java & Android Java Fundamentals Madis Pink 2016 Tartu 1 Agenda» Brief background intro to Android» Android app basics:» Activities & Intents» Resources» GUI» Tools 2 Android» A Linux-based Operating System»

More information

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Switching UIs

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Switching UIs EMBEDDED SYSTEMS PROGRAMMING 2015-16 Application Tip: Switching UIs THE PROBLEM How to switch from one UI to another Each UI is associated with a distinct class that controls it Solution shown: two UIs,

More information

1. Pakuotės turinys ADSL įranga Techniniai reikalavimai ADSL įrangos diegimas PPPoE programinės įrangos diegimas 6

1. Pakuotės turinys ADSL įranga Techniniai reikalavimai ADSL įrangos diegimas PPPoE programinės įrangos diegimas 6 Turinys 1. Pakuotės turinys 4 2. ADSL įranga 4 3. Techniniai reikalavimai 4 4. ADSL įrangos diegimas 5 5. PPPoE programinės įrangos diegimas 6 6. Windows XP ir interneto prieiga 12 7. Prisijungimas prie

More information