kramann.info
© Guido Kramann

Login: Passwort:










kramann.info
© Guido Kramann

Login: Passwort:




Interaktion über den Touch Screen mit Android Processing

(EN google-translate)

(PL google-translate)

Der typische Weg mit einem Android Gerät zu interagieren geht über den Touch Screen. Will man beispielsweise einen Knopf programmieren, so muß man sich die Darstellung des Knopfes getrennt von der Erfassung der gewünschten Aktion denken: Der Knopf wird in einer bestimmten Farbe gezeichnet. Berührt der Finger den Touch Screen, so können dadurch bestimmte vordefinierte Funktions Aufrufe ausgelöst werden. Das sind die so genannten Call back Routinen. Sie heißen: mousePressed() mouseDragged() mouseReleased() uund so weiter. In diese Funktionen muß man hinein schreiben, was bei Berühren des Bildschirms passieren soll. Es stehen dazu die globalen Variablen mouseX und mouseY zur Verfügung. Diese repräsentieren die aktuelle Maus- bzw. Fingerposition. Außerdem kann noch pmouseX und pmouseY verwendet werden. Sie repräsentieren die vorangehende Mouseposition.

Das folgende Beispiel wechselt die Farbe eines Knopfes, wenn dieser gedrückt wird. Der "Knopf" ist einfach ein gezeichnetes Rechteck. Es wird geprüft, ob der Finger innerhalb des Rechtecks ist und gegebenenfalls die Farbe umgeschaltet:

boolean ON=false;
int x_button;
int y_button;
int w_button;
int h_button;
public void setup()
{
    fullScreen();
    background(100,100,255);
    x_button = width/4;
    y_button = height/4;
    w_button = width/8;
    h_button = height/8;    
}

public void draw()
{
    if(ON==true)
        fill(0,255,0);
    else
        fill(255,0,0);
    rect(x_button,y_button,w_button,h_button);    
}

public void mousePressed()
{
     if(mouseX>x_button && mouseX<x_button+w_button &&
        mouseY>y_button && mouseY<y_button+h_button)
     {
         ON = !ON;
     }
}

Code 0-1: button

button.zip -- sketch folder

Dingen nehmen und verschieben

Ganz ähnlich sieht ein Programm aus, bei dem ein Gegenstand genommen und verschoben werden soll. Hier kommt mouseDragged() zum Einsatz:

int x_button;
int y_button;
int w_button;
int h_button;
public void setup()
{
    fullScreen();
    x_button = width/4;
    y_button = height/4;
    w_button = width/8;
    h_button = height/8;    
}

public void draw()
{
    background(100,100,255);
    fill(255,0,0);
    rect(x_button,y_button,w_button,h_button);    
}

public void mouseDragged()
{
     if(dmouseX>x_button && dmouseX<x_button+w_button &&
        dmouseY>y_button && dmouseY<y_button+h_button)
     {
         x_button += mouseX-dmouseX;
         y_button += mouseY-dmouseY;
     }
}

Code 0-2: movething

movething.zip -- sketch folder