Klasse uit library Android.App Activity Bij het starten van een app: nOperating system maakt een Activity -object aan… n…en neemt dat onderhanden met de methode OnCreate( ) Methode uit klasse Activity
eigen subklasse van Activity met een nieuwe invulling van OnCreate() [ActivityAttribute(Label = "Hello", MainLauncher = true)] public class HalloApp : Activity { protected override void OnCreate(Bundle b) { base.OnCreate(b); TextView scherm; scherm = new TextView(this); scherm.Text = "Hallo!"; scherm.TextSize = 80; scherm. SetBackgroundColor(Color.Yellow); scherm. SetTextColor (Color.DarkBlue); this. SetContentView (scherm); } een eigen subklasse van Activity om een View te maken
Opdrachten: toekenning opdrachten: toekennen van waarde aan variabele using Android.OS; using Android.App; using Android.Widget; using Android.Graphics; [ActivityAttribute(Label = "Hello", MainLauncher = true)] public class HalloApp : Activity { protected override void OnCreate(Bundle b) { base.OnCreate(b); TextView scherm; scherm = new TextView(this); scherm.Text = "Hallo!"; scherm.TextSize = 80; scherm. SetBackgroundColor(Color.Yellow); scherm. SetTextColor (Color.DarkBlue); this. SetContentView (scherm); } naam van de variabele altijd een = nieuwe waarde
Opdrachten: methode-aanroep opdrachten: aanroep van andere methoden using Android.OS; using Android.App; using Android.Widget; using Android.Graphics; [ActivityAttribute(Label = "Hello", MainLauncher = true)] public class HalloApp : Activity { protected override void OnCreate(Bundle b) { base.OnCreate(b); TextView scherm; scherm = new TextView(this); scherm.Text = "Hallo!"; scherm.TextSize = 80; scherm. SetBackgroundColor(Color.Yellow); scherm. SetTextColor (Color.DarkBlue); this. SetContentView (scherm); } naam van de methode altijd een punt overige details object dat onderhanden genomen wordt
Syntax en semantiek nSyntax: de vorm van het programma compilatie eenheid using; klasse declaratie library naam nSemantiek: wat het programma betekent
Syntax van klasse-declaratie klasse declaratie publicprivate classnaam{member} :naam attributen] [
Syntax van member member publicprivate naam type void()blok, naamtype protected overridestatic
Syntax van blok blok declaratie opdracht {}
Syntax van opdracht opdracht (), ;expressie. methode naam =expressie;variabele property naam += object naam
en dat kunnen zelf ook weer aanroepen zijn van weer andere methodes... dus de “waar was ik gebleven” administratie is best ingewikkeld! Soorten opdrachten nToekennings -opdracht: verander het geheugen nAanroep van een andere methode: voer eerst de opdrachten in die methode uit, en ga daarna verder waar je gebleven was
Combineren van Views AnalogClock wijzerklok; wijzerklok = new AnalogClock(this); wijzerklok.SetBackgroundColor(Color.Yellow); TextClock tekstklok; tekstklok = new TextClock(this); tekstklok.Format24Hour = "EEE HH:mm:ss"; tekstklok.TextSize = 50; TextView scherm; scherm = new TextView(this); scherm.Text = "Hallo!"; scherm.TextSize = 80; scherm.SetBackgroundColor(Color.Yellow); scherm.SetTextColor(Color.DarkBlue); this.SetContentView( scherm );
Combineren van Views AnalogClock wijzerklok; wijzerklok = new AnalogClock(this); wijzerklok.SetBackgroundColor(Color.Yellow); TextClock tekstklok; tekstklok = new TextClock(this); tekstklok.Format24Hour = "EEE HH:mm:ss"; tekstklok.TextSize = 50; this.SetContentView( scherm ); LinearLayout stapel; stapel = new LinearLayout(this); stapel.Orientation = Orientation.Vertical; stapel stapel.AddView(wijzerklok); stapel.AddView(tekstklok);
En… aktie! Button public class KlikkerApp : Activity { protected override void OnCreate(Bundle b) { base.OnCreate(b); knop = new Button(this); knop.Text = "Klik hier!"; knop.TextSize = 40; SetContentView(knop); } public void klik(object o, EventArgs ea) { } knop.Click += klik; knop.Text = teller.ToString() + " keer geklikt"; teller = teller + 1; } teller = 0; Button knop;int teller;
En… aktie! public class KlikkerApp : Activity { } } teller = 0; Button knop;int teller; protected override void OnCreate(Bundle b) { base.OnCreate(b); knop = new Button(this); knop.Text = "Klik hier!"; knop.TextSize = 40; SetContentView(knop); } knop.Click += klik; properties van Button Event-property van Button public void klik(object o, EventArgs ea) { knop.Text = teller.ToString() + " keer geklikt"; Event-handler teller = teller + 1; …krijgt als waarde een…
Kleuren kiezen using Android.OS; using Android.App; using Android.Widget; using Android.Graphics; [ActivityAttribute(Label = "Hello", MainLauncher = true)] public class HalloApp : Activity { protected override void OnCreate(Bundle b) { base.OnCreate(b); TextView scherm; scherm = new TextView(this); scherm.Text = "Hallo!"; scherm.TextSize = 80; scherm. SetBackgroundColor(Color.Yellow); scherm. SetTextColor (Color.DarkBlue); this. SetContentView (scherm); } (new Color(10,92,234));
Kleuren (255,0,0) (0,255,0) (255,255,0) (0,0,255) (0,255,255) (255,0,255) (255,255,255) (0,0,0) new Color(...)
Mengkleuren nnew Color (255, 0, 0) nnew Color (255, 255, 0) nnew Color (255, 64, 0) nnew Color (255, 128, 0) nnew Color (255, 192, 0)
En… aktie! Button public class KlikkerApp : Activity { protected override void OnCreate(Bundle b) { base.OnCreate(b); knop = new Button(this); knop.Text = "Klik hier!"; knop.TextSize = 40; knop.Click += klik; SetContentView(knop); } public void klik(object o, EventArgs ea) { } knop.Text = teller.ToString() + " keer geklikt"; teller = teller + 1; } teller = 0; Button knop;int teller;
Mixer Button public class MixerApp : Activity { protected override void OnCreate(Bundle b) { base.OnCreate(b); knop = new Button(this); knop.Text = "Klik hier!"; knop.TextSize = 40; knop.Click += kies; SetContentView(knop); } public void kies(object o, EventArgs ea) { } } Button knop; SeekBar SeekBar rood, groen, blauw; rood = new SeekBar(this); rood.SetBackgroundColor(Color.Red); rood.ProgressChanged += schuif; public void schuif(object o, EventArgs ea) { }
Mixer Button protected override void OnCreate(Bundle b) { base.OnCreate(b); SeekBar rood = new SeekBar(this); rood.SetBackgroundColor(Color.Red); rood.ProgressChanged += schuif ; } knop = new Button(this); knop.Text = "mix een kleur"; knop.Click += kies ; LinearLayout stapel; stapel = new LinearLayout(this); stapel.Orientation = Orientation.Vertical; stapel.AddView(rood);stapel.AddView(grn); stapel.AddView(blw);stapel.AddView(knop); this.SetContentView(stapel); grn = new SeekBar(this); grn.SetBackgroundColor(Color.Green); grn.ProgressChanged += schuif ; blw = new SeekBar(this); blw.SetBackgroundColor(Color.Blue); blw.ProgressChanged += schuif ;
Mixer Button public void schuif(object o, EventArgs ea) { SeekBar int r, g, b; } r = rood.Progress; g = grn.Progress; b = blw.Progress; SeekBar rood, grn, blw; Button knop; knop.Text = "r:" + r + "g:" + g + "b:" + b; knop.SetBackgroundColor ( new Color(r, g, b) ); public void kies(object o, EventArgs ea) { } Random gen; gen = new Random(256); rood.Progress = gen.Next(); grn.Progress = gen.Next(); blw.Progress = gen.Next();
nHex nStringformat
Maak je eigen View 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); } bestaat nog niet…
Maak je eigen View public class MondriaanView : View { protected override void OnDraw(Canvas cv) { public MondriaanView(Context ct) { } } } cv. DrawLine(…); cv. DrawRect(…); cv. DrawCircle(….); this.SetBackgroundColor(Color.White); base.View(ct); : base(ct) base.OnDraw(cv);
Hallo (x,y) DrawText (x1,y1) (x2,y2) DrawLine x y (0,0) DrawOval DrawRect links boven rechts onder DrawBitmap (x,y) DrawCircle (x,y) r
Tekenen cv.DrawRect( 10, 0, 20, 100, verf ); cv.DrawRect( 50, 0, 60, 100, verf ); cv.DrawRect( 90, 0, 100, 100, verf ); Paint verf; verf = new Paint(); verf.Color=Color.Black; 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 ); compositie met blauw en rood (vrij naar Piet Mondriaan)
Tekening aanpassen Paint verf; verf = new Paint(); verf.Color=Color.Black; verf.Color = Color.Blue; cv.DrawRect( 0, 50, 10, 70, verf ); nAanpassen van de dikte van de balken nAanpassen van de hoogte van het plaatje nAanpassen van de breedte van het plaatje 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.Red; cv.DrawRect(100, 0, 200, 40, verf ); erg veel werk...
Variabelen Paint verf; verf = new Paint(); verf.Color=Color.Black; verf.Color = Color.Blue; cv.DrawRect( 0, 50, 10, 70, verf ); 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.Red; cv.DrawRect(100, 0, 200, 40, verf ); erg veel werk... int balk, breed, hoog balk = 10; breed = 200; hoog = 100; toekennings- opdrachten: variabelen krijgen een waarde declaratie: aankondigen van variabelen en hun type
Variabelen Paint verf; verf = new Paint(); verf.Color=Color.Black; verf.Color = Color.Blue; cv.DrawRect( 0, 40+balk, 10, 70, verf ); cv.DrawRect( 10, 0, 10+balk, hoog, verf ); cv.DrawRect( 50, 0, 50+balk, hoog, verf ); cv.DrawRect( 90, 0, 90+balk, hoog, verf ); cv.DrawRect( 0, 40, breed, 40+balk, verf ); cv.DrawRect( 0, 70, breed, 70+balk, verf ); verf.Color = Color.Red; cv.DrawRect(90+balk, 0, breed, 40, verf ); int balk, breed, hoog balk = 10; breed = 200; hoog = 100; gebruik van variabelen toekennings- opdrachten: variabelen krijgen een waarde declaratie: aankondigen van variabelen en hun type type int: geheel getal
Variabelen groet = "Hallo " + naam + "!"; scherm.Text = groet; naam = editbox.Text; string naam, groet; gebruik van variabelen toekennings- opdrachten: variabelen krijgen een waarde declaratie: aankondigen van variabelen en hun type type string: tekst
Variabelen scherm. Text = "Hallo"; this.SetContentView (scherm); scherm = new TextView (); TextView scherm; gebruik van variabelen toekennings- opdrachten: variabelen krijgen een waarde declaratie: aankondigen van variabelen en hun type type TextView: opschrift
Syntax van opdracht opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam +=
Syntax van declaratie type klasse naam int string declaratie naamtype, =expressieconst ; var
Plaats van een declaratie blok declaratie opdracht {}
Variabelen Paint verf; verf = new Paint(); verf.Color=Color.Black; verf.Color = Color.Blue; cv.DrawRect( 0, 40+balk, 10, 70, verf ); cv.DrawRect( 10, 0, 10+balk, hoog, verf ); cv.DrawRect( 50, 0, 50+balk, hoog, verf ); cv.DrawRect( 90, 0, 90+balk, hoog, verf ); cv.DrawRect( 0, 40, breed, 40+balk, verf ); cv.DrawRect( 0, 70, breed, 70+balk, verf ); verf.Color = Color.Red; cv.DrawRect(90+balk, 0, breed, 40, verf ); int balk, breed, hoog balk = 10; breed = 200; hoog = 100; int x1, x2, x3, y1, y2; x1=10; x2=50; x3=90; y1=40; y2=70; x1x2x3 y1 y2
Variabelen Paint verf; verf = new Paint(); verf.Color=Color.Black; verf.Color = Color.Blue; cv.DrawRect( 0, y1+balk, x1, y2, verf ); 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.Red; cv.DrawRect(x3+balk, 0, breed, y1, verf ); int balk, breed, hoog balk = 10; breed = 200; hoog = 100; int x1, x2, x3, y1, y2; x1=10; x2=50; x3=90; y1=40; y2=70; x1x2x3 y1 y2
nExpressie: stukje programma met een waarde nGebruik van expressies: uRechterkant van een toekennings-opdracht uParameter van een methode Expressies x3 = x2+40 ; cv.DrawRect(0, y1+balk, x1, y2, verf) ;
expressie Opbouw van expressies nconstante nvariabele n... operator... n(... ) 5 hoogte x + y (y + 1) + 1 x - expressie
Operatoren n+optellen n-aftrekken n*vermenigvuldigen n/delen n%rest bij deling bij deling van int-waarden: cijfers achter de komma worden afgekapt! 14 / 3 geeft 4 want 14 is 4* % 3 geeft 2
Prioriteit van operatoren nVermenigvuldigen gaat voor optellen nBij gelijke prioriteit: van links naar rechts nWil je ’t anders: zet haakjes * 3 geeft 7 en delen en aftrekken geeft 3 (1+2) * 3 geeft 9
Syntax van expressies expressie getal expressie operator expressie() variabele ”” symbool
Gebruik van expressies in opdrachten opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam +=
Gebruik van expressies in opdrachten opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam +=
Gebruik van expressies in opdrachten en expressies opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam += expressie constante expressie operator expressie() variabele
Het type van een expressie n98765 n"Hallo" nbreedte n n"Hallo " + naam nnaam.Length n"Hallo " + naam.Length nColor.Red int string Color int string int string type klasse naam int string
Het type van een expressie nColor.Red Color Paint Button nnew Paint() nnew Button(this) Color nnew Color(255, 128, 0)
-syntax expressie getal expressie operator expressie() variabele ”” symbool object expressie (), new klasse naam property naam this klasse naam methode naam.
Programma nasd using Android.OS; using Android.App; using Android.Views; using Android.Graphics; using Android.Content; using Android.Content.PM; [ActivityAttribute(Label = "Mondriaan", MainLauncher = true, ScreenOrientation = ScreenOrientation.Landscape)] public class MondriaanApp : Activity { protected override void OnCreate(Bundle b) { base.OnCreate(b); MondriaanView schilderij; schilderij = new MondriaanView(this); this.SetContentView(schilderij); } } public class MondriaanView : View { public MondriaanView(Context c) : base(c) { this.SetBackgroundColor(Color.AntiqueWhite); } protected override void OnDraw(Canvas canvas) { base.OnDraw(canvas); int breedte, hoogte, balk, x1, x2, x3, y1, y2; breedte = this.Width; hoogte = this.Height; x1 = 50; x2 = 250; x3 = 450; y1 = 150; y2 = 350; balk = 50; Paint verf; verf = new Paint(); verf.Color = Color.Black; canvas.DrawRect(x1, 0, x1+balk, hoogte, verf); canvas.DrawRect(x2, 0, x2+balk, hoogte, verf); canvas.DrawRect(x3, 0, x3+balk, hoogte, verf); canvas.DrawRect(0, y1, breedte, y1+balk, verf); canvas.DrawRect(0, y2, breedte, y2+balk, verf); verf.Color = Color.Blue; canvas.DrawRect(0, y1+balk, x1, y2, verf); verf.Color = Color.Red; canvas.DrawRect(x3+balk, 0, breedte, y1, verf); }
Programma met commentaar nasd /* Dit programma tekent een Mondriaan-achtige "Compositie met rood en blauw“ */ using Android.OS; // vanwege Bundle using Android.App; // vanwege Activity using Android.Views; // vanwege View using Android.Graphics; // vanwege Color, Paint, Canvas using Android.Content; // vanwege Context using Android.Content.PM;// vanwege ScreenOrientation [ActivityAttribute(Label = "Mondriaan", MainLauncher = true, ScreenOrientation = ScreenOrientation.Landscape)] public class MondriaanApp : Activity { protected override void OnCreate(Bundle b) { base.OnCreate(b); MondriaanView schilderij; schilderij = new MondriaanView(this); this.SetContentView(schilderij); } } public class MondriaanView : View { public MondriaanView(Context c) : base(c) { this.SetBackgroundColor(Color.AntiqueWhite); } protected override void OnDraw(Canvas canvas) { base.OnDraw(canvas); int breedte, hoogte, balk, x1, x2, x3, y1, y2; breedte = this.Width; hoogte = this.Height; x1 = 50; x2 = 250; x3 = 450; y1 = 150; y2 = 350; balk = 50; Paint verf; verf = new Paint(); // zwarte balken verf.Color = Color.Black; canvas.DrawRect(x1, 0, x1+balk, hoogte, verf); canvas.DrawRect(x2, 0, x2+balk, hoogte, verf); canvas.DrawRect(x3, 0, x3+balk, hoogte, verf); canvas.DrawRect(0, y1, breedte, y1+balk, verf); canvas.DrawRect(0, y2, breedte, y2+balk, verf); // gekleurde vlakken verf.Color = Color.Blue; canvas.DrawRect(0, y1+balk, x1, y2, verf); verf.Color = Color.Red; canvas.DrawRect(x3+balk, 0, breedte, y1, verf); }
Commentaar nTekst voor de menselijke lezer, genegeerd door de compiler nTwee vormen: uvan /* tot */ uvan // tot einde regel