Det här är hemtentan som går lördag 10 maj 2014 i kursen Mobila applikationer med Android.
Ansvarig lärare är
Thomas Padron-McCarthy
(thomas.padron-mccarthy@oru.se),
telefon 070-73 47 013.
Instruktioner
-
Skriv och provkör programmet som beskrivs i uppgiften,
och skicka sen in det färdiga programmet till mig
(thomas.padron-mccarthy@oru.se)
senast klockan 08:00 söndag 11 maj 2014.
-
Uppgiften ska lösas enskilt, dvs inga grupper av två eller flera studenter.
-
Du får använda dator, böcker och vilka andra hjälpmedel som helst, men
du får inte samarbeta eller fråga någon (utom mig).
-
Om du behöver fråga något, så kontakta gärna mig.
Det är nog bäst att ringa eller SMS:a,
för jag kommer kanske inte att sitta vid datorn.
-
Packa ihop hela katalogen med applikationen i en Zip-fil, och skicka den som en bilaga.
(Även rar- och tar-filer fungerar.)
APK-filen (Androids kompilerade installationsfil) ska vara med.
Men döp först om Zip-filen från nånting.zip till exempelvis nånting.info för att överlista överambitiösa virusfilter.
-
Om du inte senast under måndagen får e-post från mig med en bekräftelse
på att du skickat in uppgiften,
bör du kontakta mig, enklast genom att ringa eller SMS:a mig
(ifall det är e-posten som inte fungerar).
-
Godkänt resultat på den här hemtentan ger betyget G på teoridelen av kursen.
För att få hela kursen godkänd krävs dessutom godkända inlämningsuppgifter.
Uppgiften
Vi ska göra ett enkelt ritprogram. Man ritar genom att dra med fingret på skärmen.
Om man vrider telefonen så den byter orientering mellan landskap och porträtt,
får bilden inte försvinna:
I emulatorn kan det se ut så här:
Tips
-
För att hantera fingerrörelser kan man
använda gränssnittet ("interfacet") OnTouchListener
och metoden onTouchEvent,
som beskrivs till exempel
här.
Det påminner om gränssnittet OnClickListener, som vi använt i kursen.
-
Man behöver spara alla punkterna i någon form av datastruktur, till exempel en LinkedList,
så att onDraw-metoden kan rita upp dem.
-
När man vrider telefonen så den byter orientering mellan landskap och porträtt,
tar Android-systemet bort aktiviteten och skapar en ny.
Därför måste bilden sparas undan och laddas in på något sätt.
Själv gjorde jag en sträng av alla punkternas koordinater, med mellanslag emellan,
och sparade undan som vi sett i inlämningsuppgift 2,
men man kan tänka sig andra sätt.
-
Om man använder en sträng för att spara punkterna,
kan String.split användas för att dela upp strängen i delar.
Krav
-
Man ska kunna rita genom att dra med fingret på skärmen.
-
Bilden man ritar får inte försvinna om man vrider på telefonen.
-
Det finns inget krav på att bilden ska sparas om appen avslutas.
-
I mitt exempelprogram som visas på bilderna
ovan har jag sparat koordinaterna för alla onTouchEvent,
och ritar upp dem som punkter på skärmen.
Det blir ganska fult, för om man ritar snabbt hinner telefonen kanske inte med,
och det blir glest mellan punkterna.
Man kan rita en snyggare bild genom att till exempel dra streck mellan punkterna med drawLine,
men det är inget krav.
Thomas Padron-McCarthy
(thomas.padron-mccarthy@oru.se),
9 maj 2014