Moderator, Bürokraten, Checkuser-Berechtigte, developer, emailconfirmed, Oberflächenadministratoren, Oversighter, Administratoren
11.008
Bearbeitungen
(Die Seite wurde neu angelegt: „'''Hinweis:''' Android skaliert dein Layout automatisch, damit es optimal an die Bildschirmgröße angepasst ist. Daher müssen sich deine Layouts für verschi…“) |
(Die Seite wurde neu angelegt: „Für mehr Tipps und Richtlinien über die Erstellung von Icon-Sets für deine App, siehe den [http://developer.android.com/design/style/iconography.html Iconog…“) |
||
(16 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 12: | Zeile 12: | ||
'''Hinweis:''' Android skaliert dein Layout automatisch, damit es optimal an die Bildschirmgröße angepasst ist. Daher müssen sich deine Layouts für verschiedene Bildschirmgrößen keine Sorgen um die absoluten Größen von UI Elementen machen, sondern sich auf die Layout-Struktur konzentrieren, welche die Nutzererfahrung beeinflussen (wie bspw. die Größe oder Position von wichtigen Ansichten, relativ zu benachbarten Ansichten). | '''Hinweis:''' Android skaliert dein Layout automatisch, damit es optimal an die Bildschirmgröße angepasst ist. Daher müssen sich deine Layouts für verschiedene Bildschirmgrößen keine Sorgen um die absoluten Größen von UI Elementen machen, sondern sich auf die Layout-Struktur konzentrieren, welche die Nutzererfahrung beeinflussen (wie bspw. die Größe oder Position von wichtigen Ansichten, relativ zu benachbarten Ansichten). | ||
Beispielsweise beinhaltet dieses Projekt ein Standardlayout und ein alternatives Layout für "große" Bildschirme: | |||
<syntaxhighlight lang="text"> | <syntaxhighlight lang="text"> | ||
MyProject/ | MyProject/ | ||
Zeile 22: | Zeile 22: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Die Dateinamen müssen exakt gleich sein, die Inhalte allerdings verschieden, um eine optimierte Oberfläche für die entsprechenden Bildschirmgrößen zur Verfügung zu stellen. | |||
Verweise in deiner App einfach wie üblich auf die Layout-Datei: | |||
<syntaxhighlight lang="java"> | <syntaxhighlight lang="java"> | ||
@Override | @Override | ||
Zeile 33: | Zeile 33: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Das System lädt die passende Layout-Datei aus dem entsprechenden Layout-Ordner, basierend auf der Bildschirmgröße des Gerätes, auf welchem die App ausgeführt wird. Mehr Informationen darüber, wie Android die passende Ressource auswählt, ist im [http://developer.android.com/guide/topics/resources/providing-resources.html#BestMatch Providing Resources] Guide verfügbar. | |||
Als ein weiteres Beispiel ist hier ein Projekt mit einem alternativen Layout für das Querformat: | |||
<syntaxhighlight lang="text"> | <syntaxhighlight lang="text"> | ||
MyProject/ | MyProject/ | ||
Zeile 45: | Zeile 45: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Standardmäßig wird die <code>layout/main.xml</code> Datei für das Hochformat verwendet. | |||
Wenn du ein spezielles Layout für das Querformat bereitstellen möchtest, einschließlich für große Bildschirme, dann musst du beide Kennzeichner, <code>large</code> und <code>land</code>, verwenden: | |||
<syntaxhighlight lang="text"> | <syntaxhighlight lang="text"> | ||
MyProject/ | MyProject/ | ||
Zeile 61: | Zeile 61: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
''' | '''Hinweis:''' Android 3.2 und neuer unterstützen eine erweiterte Methode um Bildschirmgrößen zu definieren, welche es dir erlaubt, verschiedene Ressourcen für Bildschirmgrößen festzulegen, basierend auf der minimalen Breite und Höhe an dichteunabhängigen Pixel. Diese Lektion deckt diese neue Technik nicht ab. Für mehr Informationen, lese [http://developer.android.com/training/multiscreen/index.html Designing für mehrere Bildschirme]. | ||
== | == Verschiedene Bitmaps erstellen == | ||
Du solltest immer bitmap-Ressourcen zur Verfügung stellen, die ordnungsgemäß auf die standardisierten Dichte-Gruppen skalieren: low, medium, high und extra-high. Das hilft dir, eine gute grafische Qualität und Performance auf allen Bildschirm-Dichten zu erreichen. | |||
Um diese Bilder zu erstellen, solltest du mit deiner Ursprungs-Ressource im Vector Format starten und die Bilder für jede Dichte mit folgenden Skalierungen erstellen: | |||
* xhdpi: 2.0 | * xhdpi: 2.0 | ||
* hdpi: 1.5 | * hdpi: 1.5 | ||
* mdpi: 1.0 (baseline) | * mdpi: 1.0 (baseline) | ||
* ldpi: 0.75 | * ldpi: 0.75 | ||
Das bedeutet, wenn du ein 200x200 Bild für xhdpi Geräte erstellst, solltest du die gleiche Ressource in 150x150 für hdpi, 100x100 für mdpi und 75x75 für ldpi Geräte erstellen. | |||
Speichere die Dateien anschließend in das dafür vorgesehene drawable-Ressourcen Verzeichnis: | |||
<syntaxhighlight lang="text"> | <syntaxhighlight lang="text"> | ||
MyProject/ | MyProject/ | ||
Zeile 87: | Zeile 87: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Jedes mal, wenn du <code>@drawable/awesomeimage</code> referenzierst wird das System das entsprechende Bitmap, basierend auf der Bildschirm-Dichte, auswählen. | |||
''' | '''Hinweis:''' Low-density (ldpi) Ressourcen sind nicht immer nötig. Wenn du hdpi Ressourcen bereitstellst, wird das System diese um die hälfte skalieren, um ideal auf ldpi Bildschirme zu passen. | ||
Für mehr Tipps und Richtlinien über die Erstellung von Icon-Sets für deine App, siehe den [http://developer.android.com/design/style/iconography.html Iconography design guide]. | |||
{{TNT|Android Training/Attribution}} | {{TNT|Android Training/Attribution}} |
Bearbeitungen