2016-05-12 7 views
0

Ich entwickle eine App für API 14 oder höher. Ich habe Ordner wie folgt verwenden:Android-Layout und Zeichnungsordner

drawable-ldpi, 
drawable-hdpi, 
drawable-xxxhdpi, 
layout-ldpi, 
layout-xxxhdpi 

ODER

drawable-sw320dp, 
drawable-sw720dp, 
layout-sw320dp, 
layout-sw720dp. 

Sie wissen nicht, was für Handys und Tablet-PCs besser Screen-Unterstützung haben.

Danke.

+0

Wenn Sie Handys und Tablet unterstützen, müssen Sie beide über Drawable halten [http://developer.android.com/guide/practices/screens_support.html](http://developer.android.com/guide/practices/ screenshots_support.html) – Krishna

+0

http://stackoverflow.com/questions/14448451/density-specific-layouts-vs-size-specific-layouts-in-android –

Antwort

3

Der Schlüssel zum Verständnis, das Verständnis ist, zu verwenden, was sie bedeuten, Qualifier Ressourcen.

Die Dichtequalifikatoren (z. B. ldpi, hdpi, xhdpi) geben Ressourcen an, die sich basierend auf der Pixeldichte im Gerätebildschirm ändern. Dies ist nützlich für Ressourcen wie Bilder. Normalerweise möchten Sie, dass Ihre Bilder auf allen Geräten die gleiche physische Größe haben. Das bedeutet, dass Sie auf Geräten mit höherer Dichte ein Bild mit höherer Dichte ("größer") benötigen.

Die Größenqualifizierer (z. B. sw720dp, s2320dp) geben Ressourcen an, die sich je nach physischer Größe des Geräts ändern. Dies ist nützlich, wenn Sie festlegen möchten, dass einige Inhalte auf dem Bildschirm die Größe (oder den Ort) basierend auf der Bildschirmgröße ändern sollen. Beispielsweise möchten Sie möglicherweise eine Liste von Elementen auf einem 4-Zoll-Gerät für ein Raster von Elementen auf einem 7-Zoll-Gerät austauschen.

Allgemeinen werden die Dichte Qualifikation für Drawables verwendet, da höhere Dichte Drawables Geräte mit höherer Dichte werden soll, und die Größe Qualifikation für Layouts verwendet werden, da Sie die Vorteile der unterschiedlichen Bildschirmgrößen in Anspruch nehmen möchten Ihre Layouts anpassen, um besser.

Die beiden sind jedoch nicht gegenseitig aus. Sie können entweder ein Qualifikationsmerkmal (und viele weitere) für jede Art von Ressource verwenden, die Ihren Anforderungen entspricht. Der erste Schritt besteht darin, herauszufinden, was Sie auf verschiedenen Geräten tun möchten, und dann die geeigneten Ressourcenqualifizierer zu identifizieren, um Ihre Ziele zu erreichen.

+0

Meine App muss die gleichen Elemente auf jedem Bildschirm zeigen. Ändern Sie die Größe der Ansichten abhängig vom Bildschirm. Also, wenn ich das brauche, sagst du, dass ich Dichtequalifikatoren benutzen muss? – user3240604

+0

Im Allgemeinen werden Ihre Ansichten automatisch auf verschiedene Bildschirme angepasst. Es hört sich an, als ob Sie in eine Situation geraten, in der dies nicht geschieht. In diesem Fall könnten Sie eine neue Frage mit Screenshots, einigen Ihrer Layout-XML und einer Beschreibung dessen, was nicht wie erwartet funktioniert, veröffentlichen. –

+0

Im bereits mit der Dichte Qualifier. Ich möchte die Größenqualifizierer 600 und 720 für Layouts hinzufügen.Meine Frage ist, ich muss auch eine Zeichnungsdatei erstellen oder wird einige der Dichte-Qualifier ziehbare verwenden? – user3240604

1

sollten Sie prüfen mehr variables: Bildschirmgröße, Rasterdichte, Orientierung.

Der einfachste Weg, Handys oder Tabletten zu unterscheiden ist Größe Qualifier zu verwenden (überprüfen video).

Aber am einfachsten ist vielleicht nicht das Beste, also muss man mit allen Qualifikanten spielen.

Ein gutes Video mit Erläuterungen über resource selection logic.

+0

Wenn ich sw720dp verwende, welcher Ordner wird in Drawable verwendet? – user3240604