How To Xamarin – Teil 3: Anpassung von Android auf Windows Phone 8

03.02.2017

Wurde bereits eine Xamarin-App für Android entwickelt und man entscheidet sich erst im Nachhinein dafür, die App auch unter Windows Phone 8 anzubieten, gibt es ein paar Dinge, die man dabei beachten muss.

Zum einen ist die Umsetzung des Layouts für die UI-Elemente wichtig. Wenn man es nicht wie in meinem vorherigen Blogbeitrag umgesetzt hat, sollte man dies nachholen, um sich viel Zeit und Arbeit zu ersparen. Ansonsten besteht eine größere Gefahr, dass sich das UI-Layout auf unterschiedlichen Windows Phones verzerrt.Die Darstellung von Bildern gestaltet sich unter Windows Phone 8 auch etwas aufwendiger. Bei iOS und Android genügt es über XAML das Element

<Image Source="iconName.png"/>

einzufügen.

Mit der Angabe des Bildnamens wird dann aus dem jeweiligen Ordner das entsprechende Bild geladen. Windows Phone 8 akzeptiert dies jedoch nicht und möchte den direkten Pfad zum jeweiligen Ordner, in dem sich das Bild befindet. Daher muss über die Code-Behind-Datei (welche es zu jeder einzelnen View gibt und die jeweilige Logik beinhaltet) ein Workaround erstellt werden.

Um es einfach zu halten, wird dem Image-Element wie folgt ein Name zugewiesen, um es aus der Code-Behind-Datei ansprechen zu können:

<Image x:Name="tagName"/>

Wie in folgendem Beispiel zu erkennen, wird in der Code-Behind-Datei nun mit C# für jede Plattform ein anderer Pfad zugewiesen:

tagName.Source = Device.OnPlatform(
           iOS: ImageSource.FromFile("Resources/iconName.png"),
           Android: ImageSource.FromFile("iconName.png"),
           WinPhone: ImageSource.FromFile("Assets/iconName.png"));

Mit dieser Lösung wird nun für jede Plattform das jeweilige Bild geladen.

 

Wer noch mehr Infos zu Xamarin haben möchte, kann sich entweder meinen ausführlichen Bericht dazu durchlesen oder einen Kommentar hinterlassen, über welches Thema zu Xamarin ein weiterer Blogbeitrag erwünscht wird.

Zurück zur Übersicht

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*Pflichtfelder

*