Verstehe ich das richtig:
Alle Android-Geräte fallen in einen dieser 4 Dichte-Buckets: ldpi, mdpi, hdpi, xhdpi.
Wenn also für jede von ihnen eine zeichnende Ressource für Dichten bereitgestellt wird (in jedem dieser Ordner ist ein Zeichensatz oder mit demselben Namen vorhanden), ist es nicht erforderlich, in / res / einen Zeichenbereich mit demselben Namen bereitzustellen. ziehbar oder / res / drawable-nodpi.
Ist mein richtiges Verhalten richtig?
Also, der einzige Grund, warum es sinnvoll ist, die gleiche Ressource in / res / drawbar bereitzustellen, wäre, die App zukunftssicherer zu machen, falls ein neuer Dichte-Bucket für Android OS definiert wird?
>Ist mein richtiges Verhalten richtig?
Durch diesen Absatz sind Sie mehr oder weniger korrekt. Sie gehen mit Ihrem nächsten Absatz ein bisschen "von der Stange":
Also, der einzige Grund, warum es sinnvoll ist, die gleiche Ressource in / res / drawbar bereitzustellen, wäre, die App zukunftssicherer zu machen, falls ein neuer Dichte-Bucket für Android OS definiert wird?
>
Nicht wirklich.
Sie fügen Ressourcen in res/drawable/
ein, die an sich skalierbar sind (z. B. ShapeDrawable
). Sie fügen Ressourcen in res/drawable-nodpi/
ein, die aus irgendeinem Grund nicht skaliert werden sollen, um der Gerätedichte zu entsprechen.
Wenn Android einen neuen Dichte-Bucket (z. B. -uhdpi
für eine ultrahohe Dichte von 400 dpi) erfindet, wird Android wahrscheinlich das tun, was Sie heute tun, wenn Sie einen Dichte-Bucket überspringen: Skalieren Sie eine Ihrer anderen Editionen. Wenn Sie beispielsweise -xhdpi
haben und -hdpi
nicht haben, wird Android das -xhdpi
image für die Verwendung auf einem -hdpi
-Gerät heruntersampeln.
Das ist korrekt, solange Sie in allen 4 Dichte-Buckets, die Sie abdecken, Zeichnungsdaten haben. Eine gängige Praxis ist es, ein benutzerdefiniertes Zeichen in / res / drawbar zu erstellen, das sich auf die Dichte bezieht, die sich über Zeichenblätter erstreckt.
Sie können beispielsweise eine Schaltfläche mit verschiedenen Zuständen für gedrückt und nicht gedrückt halten. Zuerst würden Sie für jede gedrückte und nicht gedrückte Taste eine Zeichnungsdatei mit jeder Dichte einfügen. Dann könnten Sie die folgende button_black_selector.xml in / res / drawables:
erstellen %Vor% Wenn Ihre Ressource für alle vier Dichten hinzugefügt wird, haben Sie Recht, dass Sie nicht haben, um das Zeichen zum Ordner /res/drawable
hinzuzufügen. Sie haben jedoch richtig geraten, dass es am besten ist, in dem Fall, in dem ein neues Qualifikationsmerkmal angezeigt wird, etwas im Standardordner zu haben. Daher empfehle ich, mdpi-Ressourcen nicht in den Ordner /res/drawable-mdpi
, sondern stattdessen in den Standardordner ( /res/drawable/
) zu stellen. Es ist eine gute Praxis für jede Art von Ressource.
Wie für den Ordner /res/drawable-nodpi
ist es ein spezieller Ordner, da er Ressourcen enthalten soll, die im Gegensatz zu allen anderen Qualifiern nicht automatisch skaliert werden. Daher verwenden Sie normalerweise entweder den /res/drawable-nodpi
Ordner oder verwenden ihn gar nicht.