De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Activity Bij het starten van een app:

Verwante presentaties


Presentatie over: "Activity Bij het starten van een app:"— Transcript van de presentatie:

1 Activity Bij het starten van een app:
Operating system maakt een Activity -object aan… …en neemt dat onderhanden met de methode OnCreate( ) Klasse uit library Android.App Methode uit klasse Activity

2 Maak je eigen View bestaat nog niet…
protected override void OnCreate(Bundle b) { base.OnCreate(b); TextView t; t = new TextView(this); this.SetContentView(t); AnalogClock a; a = new AnalogClock(this); this.SetContentView(a); MondiaanView m; m = new MondriaanView(this); this.SetContentView(m); }

3 Maak je eigen View public class MondriaanView : View {
public MondriaanView(Context ct) { } : base(ct) base.View(ct); this.SetBackgroundColor(Color.White); protected override void OnDraw(Canvas cv) { base.OnDraw(cv); cv . DrawLine(…); cv . DrawRect(…); cv . DrawCircle(….); } }

4 Hallo x (0,0) y DrawText DrawLine DrawBitmap DrawRect DrawOval
links boven rechts onder DrawBitmap (x,y) Android-versie DrawOval DrawCircle (x,y) r

5 compositie met blauw en rood (vrij naar Piet Mondriaan)
Tekenen compositie met blauw en rood (vrij naar Piet Mondriaan) Paint verf; verf = new Paint(); verf.Color=Color.Black; cv.DrawRect( 10, 0, 20, 100, verf ); cv.DrawRect( 50, 0, 60, 100, verf ); cv.DrawRect( 90, 0, 100, 100, verf ); cv.DrawRect( 0, 40, 200, 50, verf ); cv.DrawRect( 0, 70, 200, 80, verf ); verf.Color = Color.Blue; cv.DrawRect( 0, 50, 10, 70, verf ); verf.Color = Color.Red; cv.DrawRect(100, 0, 200, 40, verf );

6 Variabelen x1 x2 x3 y1 y2 int balk, breed, hoog
int x1, x2, x3, y1, y2; x1=10; x2=50; x3=90; y1=40; y2=70; balk = 10; breed = 200; hoog = 100; Paint verf; verf = new Paint(); verf.Color=Color.Black; cv.DrawRect( x1, 0, x1+balk, hoog, verf ); cv.DrawRect( x2, 0, x2+balk, hoog, verf ); cv.DrawRect( x3, 0, x3+balk, hoog, verf ); cv.DrawRect( 0, y1, breed, y1+balk, verf ); cv.DrawRect( 0, y2, breed, y2+balk, verf ); verf.Color = Color.Blue; cv.DrawRect( 0, y1+balk, x1, y2, verf ); verf.Color = Color.Red; cv.DrawRect(x3+balk, 0, breed, y1, verf );

7 Makkelijk aanpasbaar?

8 Syntax van declaratie declaratie const = expressie var type naam ; ,
klasse naam int string

9 Syntax van expressies expressie getal ” ” symbool variabele expressie
operator expressie ( expressie )

10 Gebruik van expressies in opdrachten
klasse naam methode naam ( expressie ) ; . , object expressie property naam += variabele = expressie ;

11 Gebruik van expressies in opdrachten
klasse naam methode naam ( expressie ) ; . , object expressie property naam += variabele = expressie ;

12 Gebruik van expressies in opdrachten en expressies
klasse naam methode naam ( expressie ) ; . , object expressie property naam += variabele = expressie ; expressie constante operator ( ) variabele

13 Maak je eigen methode-definities
Hoofdstuk 4.6-7 Maak je eigen methode-definities

14 Voorbeeld: Huizen

15 Aanroep van een methode voert opdrachten uit in de body daarvan
Nieuwe methoden private void tekenHuis(…) { … . DrawRect (…); … . DrawLine (…); … . DrawLine (…); } Methode: groepje opdrachten met een naam protected override void OnDraw(Canvas c) { … . tekenHuis (…); … . tekenHuis (…); … . tekenHuis (…); } Aanroep van een methode voert opdrachten uit in de body daarvan

16 en bij aanroep meegeven
Parameters private void tekenHuis (…) { (Canvas c, … ) c … . DrawRect (…); … . DrawLine (…); … . DrawLine (…); parameter declareren } protected override void OnDraw(Canvas c) { en bij aanroep meegeven … . tekenHuis (…); … . tekenHuis (…); … . tekenHuis (…); (c, …); }

17 this: het object dat OnDraw ook al onder handen heeft
Het object this class HuizenView : View { } private void tekenHuis (Canvas c, …) { c . DrawRect (…); c . DrawLine (…); c . DrawLine (…); } protected override void OnDraw(Canvas c) { this: het object dat OnDraw ook al onder handen heeft this this this … . tekenHuis (c, …); … . tekenHuis (c, …); … . tekenHuis (c, …); }

18 teken driemaal een net iets ander huis
Meer parameters teken driemaal een net iets ander huis nog meer parameters! protected override void OnDraw(Canvas c) { this . tekenHuis (c, …); this . tekenHuis (c, …); this . tekenHuis (c, …); 20, 100, 40); 70, 100, 40); 120, 100, 60); }

19 Meer parameters private void tekenHuis (Canvas c, … ) { Paint verf = new Paint(); int x, int y, int br) (tx,ty) int tx = x+br/2; int ty = y–br–br/2; c.DrawRect ( … , verf); c.DrawLine ( … , verf); c.DrawLine ( … , verf); x, y-br, x+br, y x, y-br, tx, ty tx, ty, x+br, y-br } (x,y) br protected override void OnDraw(Canvas c) { this . tekenHuis (c, …); this . tekenHuis (c, …); this . tekenHuis (c, …); 20, 100, 40); 70, 100, 40); 120, 100, 60); }

20 en des te lastiger aan te roepen...
Flexibiliteit Hoe meer parameters, des te flexibeler de methode private void tekenHuis (Graphics gr, int x, int y, int br, int h, int dakh, Color kl, Color dakKl, … ) { dakh en des te lastiger aan te roepen... h (x,y) br

21 Flexibiliteit Veel parameters: Nu lastig om te programmeren
In de toekomst gemakkelijk uit te breiden Weinig parameters: Nu gemakkelijk om te programmeren In de toekomst lastig te onderhouden

22 Communicatie met methoden
Parameters : aanroeper geeft waarde door aan de methode Methode-resultaat : methode geeft waarde terug aan de aanroeper net zoals een wiskundige functie

23 Methoden met een resultaat
type van het resultaat private int kwadraat (int x) { return x*x ; } waarde van het resultaat in speciale return-opdracht

24 Publieksvraag Schrijf een methode driewerf met een String-parameter, die 3 herhalingen ervan oplevert this.driewerf("Hoera!") "Hoera!Hoera!Hoera!" private string driewerf (string x) { } return x+x+x;

25 Aanroep van methoden Aanroep van void-methode geldt als opdracht
zonder resultaat Aanroep van void-methode geldt als opdracht c.DrawLine(10,10, 20,20, verf) ; Aanroep van methode met resultaat geldt als expressie a = this.kwadraat (5) ; c.DrawLine(this.kwadraat (5), 10, 25, 50, verf); … this.kwadraat (5) + 1 …

26 Syntax van opdrachten opdracht naam naam ( expressie ) ; . , expressie
klasse naam methode naam ( expressie ) ; . , object expressie property naam += variabele = expressie ; return expressie ;

27 Variabelen en objecten
Hoofdstuk 5.1-2 Variabelen en objecten

28 Variabelen Variabele: geheugenplaats met een naam
Declaratie: aangifte van het type van de variabele int x, y; x y 20 Toekenningsopdracht: variabele krijgt waarde x = 20;

29 Toekenningsopdrachten
int x, y; x = 20 ; x y 20 50 25 26 Expressie aan de rechterkant mag andere variabelen gebruiken y = x + 5 ; Vorige waarde gaat verloren x = y * 2 ; y = y + 1 ;

30 Declaratie en toekenningen
Eén keer declarareren Mogelijk meerdere toekenningen Declaratie en eerste toekenning int x; int x = 100; x = 100; x = 100; x = 250; x = x + 1; x = 2 * x;

31 Type van variabelen int geheel getal float getal met drijvende komma
int x; float y; x 10 3 y 10.0 int geheel getal float getal met drijvende komma x = 10 ; y = f ; y = 10 ; x = x / 3 ; y = y / 3 ;

32 Standaardtypes gehele getallen met een decimale punt 1 byte sbyte
± 127 byte 0..255 28-1 2 bytes short ± 32767 ushort 216-1 4 bytes int ± 2 miljard uint 0..4 miljard 232-1 8 bytes long ± 1018 ulong 264-1 met een decimale punt 4 bytes float 7 cijfers, afgerond, ≤1038 8 bytes double 15 cijfers, afgerond, ≤10300 16 bytes decimal 28 cijfers, exact, ≤1028

33 Constanten geheel getal (kleinst passende) met een decimale punt
string hexadecimaal 137 –25 0x1A 0xFF 26 255 0.5 –273.15 6.02E23 1E3 3E–11 1000 "Hallo!" "A" "" "een \"citaat\"" "\n" "\\"

34 Objecten Object: groepje variabelen dat bij elkaar hoort 255 r g b 100
b 100 w 20 h 10 30 Left Right 20 Top 40 Bottom

35 Programma en Geheugen opdrachten variabelen methoden objecten klasse
veranderen zijn gegroepeerd in zijn gegroepeerd in methoden objecten bewerken zijn gegroepeerd in hebben als type klasse klasse klasse

36 Objecten Object: groepje variabelen dat bij elkaar hoort 255 r g b 100
b 100 w 20 h 10 30 Left Right 20 Top 40 Bottom Size Color Rect 3 aantal 199.95 prijs Artikel

37 Syntax van declaratie declaratie const = expressie var type naam ; ,
klasse naam int float string

38 Publieksvraag a2 + b2 = c2 Schrijf methodes omtrek en diagonaal met een Rect als parameter, die dat uitrekenen Left Top Right Bottom br h public double diagonaal(Rect r) { } public int omtrek (Rect r) { } int br = r.Right-r.Left; int h = r.Bottom-r.Top; int a = r.Right-r.Left; int b = r.Bottom-r.Top; return 2*(br+h); return Math.Sqrt(a*a + b*b);

39 Hoofdstuk 6.1 Touch

40 Klikker class MijnAct : Activity { Button knop;
protected override void OnCreate(Bundle b) { base.OnCreate(b); knop = new Button(this); knop.Click += klik; this.SetContentView(knop); } public void klik(object o, EventArgs ea) { } knop.Text = "1x geklikt"; }

41 Klikker Schilderij class MijnAct : Activity { MijnView scherm;
protected override void OnCreate(Bundle b) { base.OnCreate(b); scherm = new MijnView(this); knop.Click += klik; this.SetContentView(scherm); } public void klik(object o, EventArgs ea) { } knop.Text = "1x geklikt"; }

42 Schilderij class MijnAct : Activity { MijnView scherm;
protected override void OnCreate(Bundle b) { base.OnCreate(b); scherm = new MijnView(this); scherm.Click += klik; this.SetContentView(scherm); } } class MijnView : View { public MijnView(Context c) : base(c) { } protected override void OnDraw(Canvas c) { base.OnDraw(c); } c.DrawLine(...); }

43 A-Touch class MijnAct : Activity { MijnView scherm;
protected override void OnCreate(Bundle b) { base.OnCreate(b); scherm = new MijnView(this); scherm.Touch += raakAan; this.SetContentView(scherm); } public void raakAan(object o, EventArgs ea) { } } class MijnView : View { public MijnView(Context c) : base(c) { } protected override void OnDraw(Canvas c) { base.OnDraw(c); } c.DrawLine(...); }

44 A-Touch V-Touch class MijnAct : Activity { MijnView scherm;
protected override void OnCreate(Bundle b) { base.OnCreate(b); scherm = new MijnView(this); scherm.Touch += raakAan; this.SetContentView(scherm); } public void raakAan(object o, EventArgs ea) { } } class MijnView : View { public MijnView(Context c) : base(c) { } this.Touch += raakAan; protected override void OnDraw(Canvas c) { base.OnDraw(c); } c.DrawLine(...); public void raakAan(object o, EventArgs ea) { } }

45 V-Touch class MijnAct : Activity { MijnView scherm;
protected override void OnCreate(Bundle b) { base.OnCreate(b); scherm = new MijnView(this); this.SetContentView(scherm); } } class MijnView : View { public MijnView(Context c) : base(c) { } this.Touch += raakAan; protected override void OnDraw(Canvas c) { base.OnDraw(c); } c.DrawLine(...); public void raakAan(object o, EventArgs ea) { } }

46 V-Touch class MijnAct : Activity { MijnView scherm;
protected override void OnCreate(Bundle b) { base.OnCreate(b); scherm = new MijnView(this); this.SetContentView(new MijnView(this)); } } class MijnView : View { public MijnView(Context c) : base(c) { } this.Touch += raakAan; protected override void OnDraw(Canvas c) { base.OnDraw(c); } c.DrawLine(...); public void raakAan(object o, EventArgs ea) { } }

47 Cirkel- klikker class MijnAct : Activity {
protected override void OnCreate(Bundle b) { base.OnCreate(b); this.SetContentView(new MijnView(this)); } } class MijnView : View { public MijnView(Context c) : base(c) { } this.Touch += raakAan; protected override void OnDraw(Canvas c) { base.OnDraw(c); } c.DrawLine(...); public void raakAan(object o, EventArgs ea) { } }

48 Cirkel- klikker } class MijnView : View { PointF p; float x, y;
public MijnView(Context c) : base(c) { this.Touch += raakAan; } protected override void OnDraw(Canvas c) { base.OnDraw(c); } c.DrawCircle(x, y, 50, new Paint()); public void raakAan(object o, TouchEventArgs tea) { } x = tea.Event.GetX(); y = tea.Event.GetY(); this.Invalidate(); }

49 Cirkel- klikker } class MijnView : View { PointF p;
public MijnView(Context c) : base(c) { this.Touch += raakAan; } protected override void OnDraw(Canvas c) { base.OnDraw(c); } c.DrawCircle(x, y, 50, new Paint()); public void raakAan(object o, TouchEventArgs tea) { } float x, y; x = tea.Event.GetX(); y = tea.Event.GetY(); p = new PointF(x, y); this.Invalidate(); }

50 Cirkel- klikker } class MijnView : View { PointF p;
public MijnView(Context c) : base(c) { this.Touch += raakAan; } protected override void OnDraw(Canvas c) { base.OnDraw(c); } if (p ≠ null) c.DrawCircle(p.X, p.Y, 50, new Paint()); public void raakAan(object o, TouchEventArgs tea) { } float x, y; x = tea.Event.GetX(); y = tea.Event.GetY(); p = new PointF(x, y); this.Invalidate(); }

51 Cirkel- klikker } class MijnView : View { PointF p;
public MijnView(Context c) : base(c) { this.Touch += raakAan; } protected override void OnDraw(Canvas c) { base.OnDraw(c); } if (p != null) c.DrawCircle(p.X, p.Y, 50, new Paint()); public void raakAan(object o, TouchEventArgs tea) { } float x, y; x = tea.Event.GetX(); y = tea.Event.GetY(); p = new PointF(x, y); this.Invalidate(); }

52 Opdrachten voorwaardelijk uitvoeren
opdracht wordt steeds opnieuw uitgevoerd zolang voorwaarde geldt if while (temperatuur<0) temperatuur += 5; if (temperatuur<0) uitvoer.Text = "Het vriest!"; opdracht wordt alleen uitgevoerd als voorwaarde geldt

53 opdracht wordt alleen uitgevoerd als voorwaarde niet geldt
Twee alternatieven if (temperatuur<0) uitvoer.Text = "Het vriest!”; else uitvoer.Text = "Het dooit."; opdracht wordt alleen uitgevoerd als voorwaarde niet geldt

54 Meer opdrachten als body
if (temperatuur<0) uitvoer1.Text = "Het vriest"; { } uitvoer2.Text = "Koud he!"; accolades maken twee opdrachten tot één body

55 Vergelijk-operatoren
< kleiner dan <= kleiner dan of gelijk aan > groter dan >= groter dan of gelijk aan == gelijk aan != ongelijk aan x=5 x wordt 5 ! x==5 is x gelijk aan 5 ?

56 Practicum en werkcollege
groep wo vr begeleiders 15-17 9-11 13-15 1 214 161 023 Alejandro Robert 2 061 Lex Bas 3 083 Niels Bastiaan


Download ppt "Activity Bij het starten van een app:"

Verwante presentaties


Ads door Google