3 Stimmen

Verwirrung über drawable-hdpi, drawable-mdpi, drawable-ldpi und drawable

Ich arbeite an einem wirklich großen Projekt, das in der Zeit von Android 1.5 begonnen wurde.

Dieses Projekt entwickelte sich mit der Weiterentwicklung von Android und unterstützt derzeit 2.3 und höher.

Jetzt habe ich das Problem, dass ich eine Menge Drawables in drawable-hdpi, drawable-mdpi, drawable-ldpi und auch im drawable Ordner habe.

Im Allgemeinen ist mir das Konzept dieser 3 Ordner (drawable-hdpi, drawable-mdpi, drawable-ldpi) klar, aber meine Verwirrung kommt mit den Bildern im drawable-Ordner.

Ich habe zum Beispiel ein Bild mit dem Namen myimage.png und dieses Bild ist in den Ordnern drawable-hdpi, drawable-mdpi und drawable-ldpi mit einer Auflösung von 72x72, 48x48 bzw. 36x36 vorhanden, aber dieses Bild ist auch im Ordner drawable vorhanden.

Meine Frage ist, warum? wann wird das Bild aus dem Drawable-Ordner verwendet? wird dieses Bild vergessen zu entfernen? wird es in einigen Fällen verwendet? Ich habe versucht, dieses Bild zu entfernen und die Anwendung funktioniert einwandfrei. Ich habe auch nur eine grüne Farbe mit einer Auflösung von 72x72 eingestellt und dieses Bild wird nie gezeichnet

Kann mir jemand die Existenz des zeichenbaren Ordners erklären?

Ich weiß, dass, wenn ich nicht über die dhpi, mdpi und ldpi Ordner, dann muss ich die Bilder in drawable setzen, aber was ist der Punkt der Bilder in drawable, wenn diese 3 Ordner vorhanden sind?

Gracias

EDIT

Eine weitere Frage: Was passiert, wenn ich ein Bild in drawable-hdpi, aber nicht in ldpi und nicht in mdpi habe? Sagen wir, wir haben ein Telefon mit mdpi-Auflösungsdichte... Was passiert dann?

3voto

Vineet Shukla Punkte 23835

drawable folder wird für Standardbilder verwendet, wenn die Bilder nicht in den entsprechenden Ordnern gefunden werden, dann wird im zeichenbaren Ordner gesucht.

Ich habe diesen Satz in dem Dokument gefunden:

Stellen Sie sich zum Beispiel vor, Sie haben ein Anwendungssymbol, icon.png, und benötigen eine eindeutige Version davon für verschiedene Sprachumgebungen. Es gibt jedoch zwei Gebietsschemata, Englisch-Kanadisch und Französisch-Kanadisch, müssen dieselbe Version verwenden. Sie könnten annehmen, dass Sie das gleiche Bild in das Ressourcenverzeichnis für Englisch-Kanadisch und Französisch-Kanadisch kopieren müssen, aber das ist aber nicht der Fall. Stattdessen können Sie das Bild, das für beide verwendet wird, als icon_ca.png (unter einem anderen Namen als icon.png) speichern und es in das Standardverzeichnis res/drawable/ Verzeichnis. Dann erstellen Sie eine icon.xml-Datei in res/drawable-en-rCA/ und res/drawable-fr-rCA/, die auf die Ressource icon_ca.png-Ressource mit dem Element verweist. Dies erlaubt Ihnen nur eine Version der PNG-Datei und zwei kleine XML-Dateien zu speichern, die die auf sie verweisen. (Ein Beispiel für eine XML-Datei ist unten abgebildet.)

Bitte beachten Sie diese Link für mehr Klarheit.

0voto

Sujit Punkte 10157

AFAIK brauchen Sie den Ordner "drawable" nicht, wenn Sie alle drei Ordnertypen (drawable-hdpi, drawable-mdpi, drawable-ldpi) mit Bildern unterschiedlicher Auflösung haben.

0voto

Vinayak Bevinakatti Punkte 39533

Wie pro ich konfrontiert, wenn Sie die App auf Android 1.5 und 2.0 laufen, wenn die Bilder, die in jedem Layout verwendet wird, ist nicht verfügbar in Ordner "drawable" dann das Projekt gibt Fehler "Ressource nicht gefunden", auch wenn das Bild in anderen hdpi, mdpi oder ldpi Ordner vorhanden ist.

0voto

Prasham Punkte 6616

Hier geht es nicht um die Dichten, es gibt auch andere Qualifizierungsmerkmale, die wir aber in den meisten Fällen nicht verwenden. Eine Liste der Qualifikatoren finden Sie unter hier y hier . Sie können die Qualifikatoren -finger -language ... usw. verwenden. Falls Sie den Qualifier default resources [in diesem Fall drawable] verwenden wollen, können Sie sich für den Ordner default drawable entscheiden. Oder viele Standard-Ordner ohne Qualifier hinter ihnen hinzugefügt

0voto

Boris Strandjev Punkte 45062

Ich denke, das Seite sollte Ihnen helfen, besser zu verstehen. Ich danke Ihnen für die Frage. Ich selbst kannte die Antwort nicht. Grundsätzlich gibt es 4 verschiedene Versionen und wenn keine genau passende Version existiert, wird die Standardversion (ohne Qualifier) verwendet.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X