Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdRudolf Hendrickx Laatst gewijzigd meer dan 7 jaar geleden
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
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.