14 Stimmen

Android: Warum werden spezifische Bilder für ldpi, mdpi und hdpi erstellt?

Ich versuche derzeit, eine größere Anzahl von Geräten mit meiner Android-App zu unterstützen. Doch selbst nach dem Durchlesen des Android Dev Guides zu diesem Thema bin ich mir nicht sicher, was ich tun soll pourquoi Ich sollte verschiedene Grafiken für ldpi, mdpi und hdpi bereitstellen.

Soweit ich weiß, werden die Bilder automatisch skaliert, so dass ich einfach hdpi-Grafiken bereitstellen und das Gerät den Rest erledigen lassen kann. Wird die Qualität der Skalierung geringer sein, wenn das Gerät sie vornimmt? Wird es ein Leistungsproblem geben? Im Moment mache ich mir mehr Sorgen über die Multiplikation der APK-Größe mit drei.

5voto

Jean Hominal Punkte 16038

Ich kann mir zwei Gründe vorstellen:

  1. Sorge der Entwickler: Wenn Sie alle Symbolversionen in Ihr Paket aufnehmen, verbrauchen Sie Platz und Bandbreite, und die Skalierung im laufenden Betrieb beansprucht CPU. Es ist nicht zu erraten, was auf einem mobilen Gerät billiger ist. (Ich vermute allerdings, dass die Anwendungen auf dem Android-Markt nur die entsprechenden Ressourcen herunterladen - in diesem Fall zahlen Ihre Nutzer nicht einmal die Speicherplatz-/Bandbreitensteuer) Referenz erforderlich.
  2. Ein Anliegen des Designers: Wenn Sie ein Symbol manuell verkleinern, können Sie (und ein engagierter Designer wird darauf bestehen) das Symbol umgestalten, um schärfere Ergebnisse als bei der automatischen Skalierung zu erzielen. Betrachten Sie diese Seite für eine ausführliche Erklärung, warum die manuelle Skalierung von Symbolen sinnvoll ist. (Er spricht hauptsächlich über iPhone-Symbole, aber das gilt auch für Android-Symbole).

2voto

Julian Punkte 19244

Ich würde vermuten, dass man eine ausgewogene Entscheidung zwischen Leistung und Größe treffen muss. Wenn Sie nur eine hdpi-Grafik bereitstellen, müsste das Betriebssystem natürlich einige Ressourcen für die Verkleinerung der Grafik für Geräte mit geringerer Auflösung verwenden. Wenn Sie aber sowohl eine hdpi-, mdpi- als auch eine ldpi-Grafik bereitstellen, wird etwas mehr Platz benötigt.

Ihre Befürchtung, dass sich die APK-Größe verdreifacht, ist meiner Meinung nach jedoch nicht allzu wichtig. Erstens, wenn Sie ohnehin eine hdpi-Grafik bereitstellen, können Sie eine mdpi- und eine ldpi-Grafik hinzufügen (die beide kleiner sind als die hdpi-Grafik (es gibt ungefähr Skalierungsverhältnis 3:4:6 )) wird die Größe erhöht, aber bei weitem nicht verdreifacht (eher verdoppelt). Zweitens machen die Grafiken nicht die gesamte APK-Größe aus, so dass eine Verdreifachung der Anzahl der Bilder die APK-Größe auch nicht verdreifachen wird. Und schließlich: Da Android jetzt Apps-to-SD unterstützt, ist die Größe Ihrer App nicht mehr so entscheidend wie in früheren Versionen.

0voto

Kevin Coppock Punkte 131486

Ist die Qualität der Skalierung geringer, wenn das Gerät dies tut?

Das ist der einzige Grund, warum ich es tun würde. Für die meisten Bilder kann ich mir vorstellen, dass der eingebaute Skalierer sehr gut funktioniert. Allerdings sind die meisten Symbole (Launcher-Symbol, Benachrichtigungssymbole) wird sehr pixel-spezifische aufgrund ihrer geringen Größe sein. In diesen Fällen führt die manuelle Verkleinerung zu einem schärferen Ergebnis als die automatische Skalierung.

0voto

Pedro Loureiro Punkte 11320

Der Grund dafür ist, dass man mehr Pixel braucht, um die gleiche visuelle Größe darzustellen, wenn man etwas auf einem HDP-Gerät (höhere Pixeldichte pro Zoll) darstellen will.

Sie können das Bild vom Betriebssystem skalieren lassen, aber es wird wahrscheinlich unscharf aussehen.

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