Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
1
Haupttitel der Präsentation
WIFI Bundesland
2
Grundlagen Widgets sind Elemente auf dem „Android-Desktop“, dem Home Screen Widgets bieten die Möglichkeit den Benutzern Informationen der App zu liefern Kurzinfos Anzahl versäumte Anrufe, ungelesene Mails, … Aktualisierte Daten Temperatur eines bestimmten Ortes, … Ansicht von gefilterten Daten To-Dos aus Liste mit Priorität „sehr hoch“ Kalendereinträge des aktuellen Tages Viele Widgets sind mit einer Applikation verknüpft, andere stehen für sich selber Da „Widget“ die Superklasse von z.B. Buttons ist, werden „Home Screen Widgets“ eigentlich „AppWidgets“ genannt
3
Umsetzung von AppWidgets
sind BroadcastReceiver verwenden RemoteViews Drei Komponenten notwendig Layout für GUI (empfohlen XML, programmatisch möglich) XML mit Meta-Daten BroadcastReceiver zur Kontrolle des AppWidgets Layout-Größe HomeScreen ist ein Raster, Widgets sind ein oder mehrere Zellen dieses Rasters groß Größe wird gerundet, ca. Formel ist Höhe = 70dp * zellen – 30dp (1 Zelle = 40 dp, 2 Zellen = 110 dp)
4
Layout von Widgets Einsatz von Views und Layouts vor allem aufgrund von Sicherheit (AppWidget läuft im Kontext Home Screen) stark eingeschränkt Zugelassene Layouts sind FrameLayout, LinearLayout, RelativeLayout, GridLayout Erlaubte Views sind AnalogClock, Button, Chronometer, ImageButton, ImageView, ProgressBar, TextView, ViewFlipper <LinearLayout […]> <TextView […]/> <TextView […]/> <Button […]/> </LinearLayout>
5
Meta-Daten von AppWidgets
Im Ordner res/xml gespeicherte XML-Datei WICHTIG: Tag appwidget-provider mit sämtlichen wichtigen und notwendigen Daten für das Widget <?xml version ="1.0" encoding ="utf-8"?> <appwidget-provider -> Verweis auf XML android:minWidth="40dp" android:minHeight="40dp" -> min Höhe/Breite android:label="Mein erstes Widget!" -> Beschriftung für die Übersicht android:updatePeriodMillis="360000" -> Wie oft aktualisieren? android:resizeMode="none" -> Größe änderbar? (horizontal | vertical) />
6
Umsetzen von AppWidgets 1/2
Vererben von BroadcastReceiver Überschreiben von onUpdate(), onDeleted(), onDisabled() und onEnabled() Registrieren von Intent-Filtern für Broadcasts Es gibt eine gekapselte Klasse für 1) und 2) => AppWidgetProvider public class MeineAppWidget extends AppWidgetProvider { @Override public void onUpdate (Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { //Was passiert im update? }
7
Umsetzen von AppWidgets 2/2
Im Manifest als Receiver registrieren und Verweis auf Meta-Daten-Datei <receiver android:name=".MeineAppWidget" android:label="Meines!" > <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <meta-data android:name="android.appwidget.provider" /> </receiver>
8
RemoteViews für AppWidgets 1/2
RemoteViews werden eingesetzt um Views in anderen Applikationen zu ändern Da AppWidget im HomeScreen laufen und geändert werden sollen, kommen RemoteViews zum Einsatz Tatsächlich durchgeführt werden die Änderungen durch den Einsatz eines AppWidgetManager. Dieser wird im onUpdate() des AppWidgetProviders übergeben oder mittels AppWidgetManager appWidMan = AppWidgetManager.getInstance(context); ComponentName thisWidget = new ComponentName(context, MeiWidget.class); int[] appWidgetIds = appWidgetManager.getAppWidgetIds(thisWidget); geholt
9
RemoteViews für AppWidgets 2/2
In beiden Fällen werden so for (int i = 0; i < anzahl; i++) { int appWidgetId = appWidgetIds[i]; RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_layout); views.setTextViewText(R.id.widget_text1, "erste Zeile"); appWidgetManager.updateAppWidget(appWidgetId, views) } die Views aktualisiert. Zu beachten ist, dass ein AppWidget mehrfach zum Einsatz kommen kann, daher ist es notwendig, diese Schleife einzusetzen.
10
Interaktion mit AppWidget
Klick auf AppWidget soll etwas bewirken, einrichten eines ClickListener Intent intent = new Intent(context, MeineAktivität.class); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0); views.setOnClickPendingIntent(R.id.widget_text1, pendingIntent); Intent kann Aktivität, Dienst oder implizieter Intent (z.B. „öffne WebSite sein Mehrere Buttons oder andere View-Elemente können mit unterschiedlichen Intents verbunden sein
11
Aktualisierung von AppWidgets
Verwendung von AppWidget-updatePeriodMillis In Millisekunden angegebene Zeit, bis wieder onUpdate() aufgerufen wird Ressourcen-intensiv, da das Gerät „aufgeweckt“ wird um dieses Update durchzuführen => zurückhaltend einsetzen Alternativen: Intentfilter und onReceive() im Widget überschreiben Alarm
12
Konfiguration von AppWidgets 1/2
Wird aufgerufen, nach dem Benutzer AppWidget ausgewählt hat, bevor AppWidget am HomeScreen erscheint Zwei Möglichkeiten Konfiguration einzusetzen nur beim ersten Mal, dann löschen und neu um Konfiguration erneut durchzuführen Intent auf Konfigurations-Aktivität setzen Konfigurationsaktivität braucht Intent-Filter für <activity android:name=".WidgetConfigAct"> <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/> </intent-filter></activity> In Meta-Daten des appwidget-provider android:configure = “com.example.WidgetConfigAct"
13
Konfiguration von AppWidgets 2/2
In der Konfigurations-Aktivität einlesen von AppWidgetId appWidgetId=extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); Vorbereiten von Abbruch setResult(RESULT_CANCELED, null); Einrichten einer GUI zur Konfiguration von AppWidget
14
Wichtige Befehle XML-Layout wie Aktivität allerdings eingeschränkt
XML-Meta-Daten in res/xml <appwidget-provider […] AppWidgetProvider onUpdate() Intent-Filter setzen RemoteViews views = new RemoteViews( context.getPackageName(), layout); appWidgetManager.updateAppWidget(appWidgetId, views) views.setOnClickPendingIntent()
15
Demonstration AppWidget das Zahl am Desktop anzeigt
AppWidget das bei Klick impliziten Intent auslöst um WebSite von WIFI-Wien aufzurufen AppWidget mit Verbindung zu Applikation AppWidget mit Konfiguration nach Auswahl
16
Üben Erstellen Sie ein Widget mit einem TextView. Klick auf den TextView führt zu einer Applikation in der aus einer Liste mit den Zahlen von eine ausgewählt werden kann. Auswahl einer Zahl aus der Liste führt zur Anzeige dieser Zahl im Widget. Erstellen Sie ein Widget, dessen Konfiguration die Möglichkeit bietet die Farbe des Textes der verwendeten TextView zu steuern. In diesem TextView steht die Bezeichnung der gewählten Farbe Erstellen Sie ein 3x1 Widget, das die Überschrift der letzten Nachricht auf orf.at (RSS verwenden) anzeigt
17
Zusammenfassung
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.