Webdesign

Einstieg Touch-Handler (Java/Eclipse)

Nachdem lange Zeit kein Tutorial zum Thema Androidentwicklung veröffentlicht wurde, möchte ich nach dem Start unseres neuen Website-Konzepts wieder vermehrt über diese Materie Auskunft geben. Ich möchte aber auch sagen, dass ich mich folgend verstärkt auf die Android-Programmierung mittels Java und Eclipse (Umgebung) beziehen werde. Grund ist einfach, dass Eclipse stärker verbreitet ist als C# und erweiterte Funktionen wie Multiplayer, Werbung u.ä. mit Xamarin schwerer  bzw. mit der Standart-Lizenz gar nicht umzusetzen sind. Das liegt an der Tatsache, dass man in Xamarin Verweise auf Bibliotheken wie z.B. den „Google-Play-Services“ nur mit einer erweiterten Lizenz erstellen kann. Und diese kostet Geld. Deswegen ist Eclipse als bekanntere Entwicklungsumgebung definitiv eine gute Alternative, nicht zuletzt auch wegen der Fülle an Materialen und Code-Beispielen, welche man im Web findet.

Demzufolge werden Code-Beispiele jetzt immer als Java-Code platziert. Falls es Bedarf auf eine „Übersetzung“ der Themen auf Xamarin/C# gibt, werde ich dies gerne tun. Immerhin sind die Unterschiede zwischen C# und Java nicht die allergrößten. Ich werde nicht auf die Bedienung von Eclipse eingehen, falls eine gewünscht wird: Klick!

In den kommenden Wochen möchte ich mich gerne auf Touch-Events beschränken, denn diese sind gerade die Besonderheit in der Android-Programmierung und sind der wesentliche Bestandteil der Verknüpfung von Benutzer und Device. Wischen und Tippen ermöglichen dem Entwickler neue spielerische Möglichkeiten der Bedienungsgestaltung.

In diesem Beitrag geht es nur um einen kleinen Einstieg, nämlich, wie man die onTouch-Methode in eine Activity einbindet. Im Beispiel geht es nur darum, dass nach Berühren eines Bildes eine Nachricht angezeigt wird. Nachfolgend die wichtigsten Code-Segmente, in der Layout-Datei der Activity befindet sich nur ein Bild, deswegen verzichte ich hier auf den xml-Code.

//Code

import android.view.View.OnTouchListener;

public class MainActivity extends Activity implements OnTouchListener{

...

}

Als erstes muss der OnTouchListener in den Activity-Kopf eingefügt werden. Dies dient dazu, dass später eine einheitliche onTouch-Methode erstellt werden kann, über die alle Touch-Aktionen erfolgen kann.

//Code

ImageView img;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Initialisierung
img = (ImageView) findViewById(R.id.imageView1);
img.setOnTouchListener(this);

}

Wir definieren uns eine globale Variable für das Bild und setzen ihren onTouch-Listener in der Create-Methode auf den der Activity (Parameter-Wert „this“). Nur kann die Touch-Aktion dieses Bildes in der Activity-Methode definiert werden.

//Code

@Override
public boolean onTouch(View v, MotionEvent e) {
// TODO Auto-generated method stub
if (v==img) {

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
this);

// Titel setzen
alertDialogBuilder.setTitle("Nachricht");

// Nachricht setzen
alertDialogBuilder.setMessage("Bild wurde berührt!");

// Erstellen des Alert-Objekts
AlertDialog alertDialog = alertDialogBuilder.create();

// Anzeige
alertDialog.show();

}

return true;
}

Als erstes muss überprüft werden, um welches Objekt (View v) es sich handelt („if-Anweisung“). Dies wird eigentlich nur wichtig, wenn es um mehrere Objekte geht. Dann kann ganz bequem die Anweisung für das Anzeigen der Nachricht erfolgen. Der Parameter „MotionEvent e“ wird später wichtig, wenn wir bestimmte Gesten und Touch-Arten betrachten. Dies wird aber in einem der nächsten Tutorials thematisiert.

Nach dem Starten der App auf einem Device oder in einem Emulator sollte die Anweisung wie gewünscht umgesetzt werden.

Dies sollte nur ein kleiner Einblick in die Möglichkeiten mit „Touch“ sein. In den nachfolgenden Tutorials werde ich verstärkt auf Motion-Events eingehen.