zu www.bildungsgueter.de nächster Abschnitt zur Inhaltsübersicht des Kapitels vorheriger Abschnitt

Vorbereitung eines Projekts

Richte nun ein Androidprojekt so ein, wie du das erste Beispielprogramm eingrichtet hast: Mit einer vorbereiteten Aktivität und einem vorbereiteten Menü. Entferne im Layout das Anzeigefeld mit dem Text "Hello World".

Definiere im dem Verzeichnis, in dem die MainActivity steht, die Klasse GrafikView, die du von der Klasse View (im Paket android.view) ableitest.

Die Definition der Klasse sollte so aussehen:

package de.bildungsgueter.grafik001;

import android.content.Context;
import android.graphics.*;
import android.util.AttributeSet;
import android.view.View;

public class GrafikView extends View {
	
    private int widthOfView;
    private int heightOfView;
    
    public GrafikView (Context context) {
        super(context);
        this.setUp();
    }
    
    public GrafikView (Context context, AttributeSet attrs) {
        super(context, attrs);
        this.setUp();
    }

    private void setUp() {
        //  Hier kannst du die Hintergrundfarbe
        //  des Anzeigeelements festlagen:
        this.setBackgroundColor(Color.WHITE);
        //  Hier kannst du Objekte erzeugen, die die spätere
        //  Ausführung der Methode  onDraw  beschleunigen:
    }

    
    @Override
    protected void onSizeChanged(int w, int h, int oldW, int oldH) {
        widthOfView = w;
        heightOfView = h;
    }
    
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        //   hier wirst du die Grafik-Anweisungen
        //   einfügen, die du ausprobieren willst.
    }
}

Die Klasse besitzt zwei private Variablen, zwei öffentliche Konstruktoren und die überschriebenen Methoden onSizeChanged und onDraw. Die private Methode setUp kann verwendet werden, um eine neue Instanz sogleich mit weiteren Hilfsmitteln auszustatten.

Die beiden Konstruktoren werden für den Layout-Editor des Entwicklungssystems benötigt. Sie rufen den Konstruktor der Basisklasse auf und konfigurieren eine Instanz durch diesen Aufruf soweit, dass sie vom Layout-Editor ins Entwurfsfeld eingefügt werden kann. Außerdem rufen die Konstruktoren die als privat deklarierte Methode setUp auf.

Die Methode onSizeChanged wird in GrafikView überschrieben, um eine Benachrichtigung zu erhalten, wenn die Größe des Anzeigelements sich ändert. Für Grafikanwendungen ist es oft erforderlich, die genaue Größe des Anzeigeelements zu kennen. Die aktuellen Abmessungen könntest du auch mit den Methoden getHeight(), getWidth() erfragen. Es ist aber ausreichend, diese Werte immer dann, wenn sie sich ändern, lokal zu speichern.

Die wichtigste Methode der Klasse ist onDraw. In dieser Methode wirst du die Zeichenbefehle der Klasse Canvas ausprobieren.

Compiliere das Projekt, platziere eine GrafikView im vorbereiteten Layout activity_main.xml und compiliere nochmals.

Dieses Projekt findest du für eclipse ADT vorbereitet in diesem Archiv: Grafik001.zip.


vorheriger Abschnitt zur Inhaltsübersicht des Kapitels nächster Abschnitt