27.02.2014 Aufrufe

PC Magazin mit Film DVD Windows Extreme (Vorschau)

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

118<br />

it professional<br />

EigEnE Apps<br />

Das virtuelle Handy ist bereit:<br />

Mit dem Mauszeiger greifen Sie<br />

auf die gleichen Funktionen<br />

zu, die Sie von Ihrem eigenen<br />

Android-Smartphone kennen.<br />

hören Sie ein zartes Maunzen. Ihre Apps geben<br />

Sie als so genanntes Application Package<br />

(.apk) weiter. Wenn Sie im AI Designer auf<br />

die Schaltfläche Package for Phone klicken,<br />

stehen Ihnen im aufklappenden Menü drei<br />

Optionen zur Auswahl: Wenn Sie Ihr Telefon<br />

angeschlossen haben, wählen Sie Download<br />

to connected phone, um die App direkt auf Ihr<br />

Handy zu installieren. Wollen Sie die .apk-Datei<br />

selbst, speichern Sie sie über die Option<br />

Download to this Computer. APK-Dateien können<br />

Sie per ADB-Programm auf Smartphones<br />

installieren.<br />

Die Beispielprojekte des Artikels finden Sie<br />

als Application Package auf der Heft-<strong>DVD</strong>.<br />

Anspruchsvolle Anwendungen<br />

Sie brauchen bei der Android-App-Entwicklung<br />

viele Basisfunktionen nicht neu aufzusetzen,<br />

sondern verwenden einfach die<br />

vorhandenen, die in den meisten Fällen bereits<br />

als AI-Komponenten integriert sind. Auf<br />

diese Weise gelingt es Ihnen, beeindruckend<br />

leistungsfähige Apps ohne großen Aufwand<br />

und <strong>mit</strong> überschaubaren<br />

Blockstrukturen zu entwickeln.<br />

Eine App <strong>mit</strong> Kamerafunktion<br />

und Bildanzeige ist<br />

beispielsweise <strong>mit</strong> wenigen<br />

Handgriffen fertig. Erstellen<br />

Sie im AI Designer ein neues<br />

Projekt. Ziehen Sie eine<br />

Camera-Komponente aus<br />

der Kategorie Media auf den<br />

Viewer. Der Benutzer der App<br />

soll später per Button-Klick<br />

die Kamerafunktion aufrufen<br />

und ein Foto schießen können,<br />

das dann zusammen<br />

<strong>mit</strong> dem Verzeichnispfad<br />

der gespeicherten Bilddatei<br />

auf dem Display angezeigt<br />

wird. Zur Anzeige des Fotos<br />

verwenden Sie ein Image- und für die Anzeige<br />

des Verzeichnispfades ein Label-Element. Außerdem<br />

benötigen Sie einen Button. Fügen Sie<br />

diese Komponenten ebenfalls Ihrer App hinzu.<br />

Die Kamera erscheint als nicht sichtbare Komponente<br />

im Komponentenfach unterhalb des<br />

Viewers. Ändern Sie die Text-Eigenschaft des<br />

Buttons zu Fotografieren und die des Labels<br />

zu Speicherort des Fotos. Außerdem bietet es<br />

sich an, für das Screen-Element einen Titel zu<br />

vergeben (Eigenschaft Title), z.B. Fotokamera<br />

<strong>mit</strong> Bildanzeige.<br />

Rufen Sie nun den Blocks Editor auf. Ziehen<br />

Sie dort den Ereignisblock Button1.Click (Register<br />

My Blocks) auf die Editorfläche und klinken<br />

Sie in diesen die Methode Camera1.Take-<br />

Picture ein. In dieser Methode sind sämtliche<br />

Funktionen implementiert, die zum Aufruf<br />

der Systemkamera notwendig sind. Sie müssen<br />

jetzt nur noch dafür zu sorgen, dass das<br />

Foto und dessen Speicherort auf dem Display<br />

erscheinen. Dafür benötigen Sie eine zweite<br />

Ereignisroutine, die das Camera-Objekt<br />

zur Verfügung stellt. Schauen Sie sich einfach<br />

im Register My Blocks die zur Verfügung<br />

stehenden Member der Camera-Komponente<br />

an. Sie finden dort außer dem Objekt selbst<br />

(Camera1) die bereits verwendete Methode<br />

TakePicture und den Ereignisblock Camera1.<br />

AfterPicture.<br />

Ziehen Sie den Ereignisblock Camera1.After-<br />

Picture auf den Editor. Das da<strong>mit</strong> verbundene<br />

Ereignis tritt automatisch ein, nachdem der<br />

Benutzer ein Foto aufgenommen hat. Nun gilt<br />

es, in diesem Block zu definieren, was daraufhin<br />

geschehen soll. Die Ereignismethode<br />

AfterPicture besitzt einen Parameter image,<br />

der den Verzeichnispfad der Bilddatei enthält.<br />

Das entsprechende Verbindungsstück klinkt<br />

sich im Kopf des Ereignisblocks automatisch<br />

ein, nachdem Sie diesen in den Editor gezogen<br />

haben. Das Verbindungsstück für den<br />

Wert der Variablen finden Sie in der Kategorie<br />

My Definitions. Um den Text für ein Label zu<br />

ändern, weisen Sie der gleichnamigen Eigenschaft<br />

den neuen Text als Wert zu. Integrieren<br />

Sie also den Eigenschaftsblock set Label1.Text<br />

to in den Ereignisblock Camera1.AfterPicture<br />

und weisen Sie den Wert der Variablen image<br />

zu. Anschließend machen Sie es <strong>mit</strong> set<br />

Image1.Picture to und value image genauso.<br />

Die Eigenschaft Picture der Image-Komponente<br />

verweist auf die anzuzeigende Bilddatei,<br />

deren Pfad Sie ebenfalls als Wert zuweisen.<br />

Da<strong>mit</strong> ist die Kamera-App auch schon fertig.<br />

Die vollständige Blockstruktur entnehmen Sie<br />

der Abbildung unten. Zum Testen benötigen<br />

Sie ein Smartphone, da der Emulator keine<br />

Kamerafunktion zur Verfügung stellt.<br />

So trivial die visuelle Entwicklung von Android-Apps<br />

<strong>mit</strong> Google App Inventor auf den<br />

ersten Blick möglicherweise anmutet, sind<br />

der Komplexität von anspruchsvollen Apps<br />

dennoch keine Grenzen gesetzt. Tatsächlich<br />

können Sie <strong>mit</strong> AI so ziemlich alles erreichen,<br />

was Ihnen vorschwebt (siehe auch die<br />

Buchbesprechung in dieser Augabe). whs<br />

Block-Editor und Simulator: In einander geschachtelte Blöcke: Mit when ...<br />

do-Blöcken definieren Sie Ereignishandler, <strong>mit</strong> call-Blöcken rufen Sie die<br />

passenden Methoden auf.<br />

Blockstruktur der Kamera-App: Mit zwei grafisch aufbereiteten<br />

Ereignismethoden ist alles erledigt.<br />

<strong>PC</strong> <strong>Magazin</strong> 10/2011 www.pc-magazin.de

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!