esmaspäev, 7. märts 2016

Ekraanile joonistamise äpi edasiarendus (pildistamine ja pildi salvestamine)

Täiustame eelmisel tunnil alustatud ekraanile joonistamise äppi.

NB! Kes eelmisel tunnil puudus, siis saate valmis äpi alla laadida siit (fail tuleb salvestada arvutisse ja siis AppInventori keskkonda üles laadida Fail -> Import).

Lisame äpile juurde võimaluse, et saame pildi, millele joonistada, oma nutiseadme kaameraga pildistada ning pärast koos joonistusega pildi salvestada.

1. Pildistamine nutiseadme kaamerat kasutades

  1. Lisa oma projekti disainivaates töölauale nupp, mille tekstiks on "Pildista" või "Foto". Muuda nupu nimi ära ka "Components" paneelis.
  2. Nüüd otsi Palette Media valikust komponent Camera ning lohista see töölauale. Camera on peidetud komponent ning ilmub töölauaks oleva telefonipildi alla.
  3. Edasi võta programmeerimise vaade Blocks
  4. Nüüd tuleb programmi täiendada nii, et nupul "Pildista" klõpsamisel avaks äpp kaamera ning lubaks meil pildi teha. 
  5. Edasi tuleb lisada plokk, et kaamerast saadud pilt võetakse joonistusvälja taustapildiks. Selleks saame kasutada plokke 
  6. Testi äppi! Selleks tuleb klõpsata üleval menüüribal sõnal "Build" ja edasi valida "Provide QR code for .apk" variant. Skänni nutiseadmega QR koodi ja installi see oma seadmesse.

2. Joonistusega pildi salvestamine oma seadmesse

  1. Lisa projekti disainivaates töölauale nupp "Salvesta". Muuda nupu nimi ära ka "Components" paneelis.
  2. Paiguta nupud nii, et neid oleks võimalik klõpsata (näiteks kasutades eelmisel tunnil õpitud HorizontalArrangement vahendit.
  3. Programmeerimise vaates Blocks tuleb lisada tegevus, mis järgneb nupu "Salvesta" klõpsamisele. Joonistamisala (Canvas) valikus on käsuplokk "SaveAs", aga seda ei saa otse nupuklikiga ühendada. Vahelüliks sobib plokk Built-in ja Control plokkide valikust "Evaluate but ignore result".
  4. Testi äppi! Pilt salvestub nutiseadme sisemällu.
Vaata allolevat programmi ja selgita, mis erinevus on sel võrreldes ülemise skriptijupiga!
Mis probleem tekib ülemise skripti puhul, kui oleks soov salvestada mitut pilti?


Lisaülesanne
Joone jämeduse määramine

Täienda oma äppi sellega, et oleks võimalus ka valida, kui laia joonega joonistada saad.

  1. Lisa äpi muutmiseks disainivaates liugur (slider, selle leiab User interface valiku alt). Lohista see joonistamisala alla või siis näiteks selle HorizontalArrangement vahendi sisse, kus on pildistamise ja salvestamise nupud.
  2. Lisa liuguri juurde ka tekst, et sellega saab joone laiust muuta (User interface -> Label ja Properties paneelis muuda selle tekst eestikeelseks).
  3. Properties paneelis. Pane liuguri väikseimaks väärtuseks (MinValue) 2 ja suuremaks väärtuseks (MaxValue) 20. Liuguri algasukohaks (ThumbPosition) või panna 10. Liuguri laiuseks (Width) pane näiteks 70 px.
  4. Blocks. Loo muutuja laius ja pane selle väärtuseks 2 (vajalikud plokid leiad Variables ja Math jaotuse alt).
  5. Nüüd leia liuguri plokkide alt selline, mis reageerib liuguri asendi muutusele (PositionChanged) ja lohista see töölauale. Selle ploki sisuks tuleb käsk võtta muutuja laius väärtuseks liuguri asend 
  6. Nüüd tuleb lisada ringi ja joone joonistamise plokki see, et joone laiuseks võetakse muutuja laius.
  7. Testi äppi!