Frage

Ich habe Verwirrung in Bezug auf Multi-Bildschirme in Android unterstützen. Ich habe für Multi-Screen-Unterstützung in Android-Entwickler-Forum durch Artikel verschwunden. Meine Frage ist, wenn app 15-20 Bilder hat, die Vollbild auf dem Gerät Bildschirm angezeigt werden müssen. Nun, wenn ich alle Bildschirme unterstützen wollen, was soll ich in drei setzen ziehbar Ordner LDPI, MDPI & hdpi. Hier ist, was ich getan habe,

In LDPI - Bilder von 240x320 Auflösung MDPI - Bilder von 320x480 reolution hdpi - Bilder von 720x800 Auflösung. (Ich bin mit gleichen Dichten für alle drei Auflösung) Ich denke, das nicht richtiger Ansatz ist.

Was genau soll ich tun? Setzen Bilder unterschiedlicher Auflösung in drawable-LDPI, drawable-MDPI & drawable-hdpi wie oben oder sollte i verwenden, um Bilder mit unterschiedlichen Dichten 120 dpi, 160 dpi und 240 dpi. Wenn ich Bilder mit unterschiedlichen Dichten verwendet werden, was ihre Auflösung sein sollte (sollte 120 dpi Auflösung 240x320 sein, 160 dpi Auflösung 320x480 & 240 dpi Auflösung 480x800 sein). Oder wenn ich verschiedene dpi Bilder bin mit ihrer Auflösung sollte gleich sein (320x480) für alle Dichten.

Viele Grüße, Anuj

War es hilfreich?

Lösung

Im Idealfall sollten Sie Drawables mit unterschiedlichen Dichten für verschiedene Bildschirme haben. Sie können Größen verwenden Sie für Ihre Bilder erwähnt. Sie können aber auch nur High-dpi-Bilder liefern und sie werden auf Geräterasterdichte Begegnung Benutzer verkleinerter werden.

Auch wenn Sie Bilder wollen im Vollbild angezeigt werden, können Sie möglicherweise verschiedene Versionen dieser Bilder für Quer- und Hochformat Orientierungen und für lange und nicht lange Bildschirme haben müssen.

Und schließlich können Sie ein ImageView Widget für die richtige Bildskalierung auf verschiedenen Geräten verwendet werden.

Andere Tipps

Anujprashar, gibt es keine einfache Antwort auf Ihre Frage. Die unterschiedlichen Dichten Spezifikationen (hdpi, MDPI, LDPI) beziehen sich nur auf einen mittleren Bereich von Dichten (d.h. hdpi liegt bei etwa 240 ppi). Allerdings hdpi zu einer großen Anzahl von unterschiedlichen Auflösungen beziehen könnte (zum Beispiel Motorola Droid ist hdpi, Auflösung 480x854, Nexus One ist hdpi, Auflösung 480x800). So ist es keine Größe Bild fixiert man kann alle Geräte vollen Umfang nutzen passen verwenden.

Mein Vorschlag ist, überhaupt erst möglich, wenn entweder vermeiden, ein Layout verwenden, das die Bilder erfordert die genaue Größe des Bildschirms zu sein, oder stattdessen ein Bild liefert größer als die Mehrheit der Beschlüsse für die Zieldichte (zB 500x900) verlassen zusätzliche Margen, die aus beschnitten werden kann (man denke an sie als bluten, wenn Sie sich vertraut mit dem Konzept für den Druck).

Oder einfacher, wenn Sie sie nicht benötigen 1 angezeigt werden: 1 an ihrem ursprünglichen Pixel-Auflösung, können Sie die Scaletype eines Image zu centerCrop einfach eingestellt, und seine Breite und Höhe zu fill_parent. Dies wird erweitern (oder kondensiert) das Bild, um den Behälter zu passen, aus Pixeln beschneiden, wenn das Seitenverhältnis nicht korrekt ist.

Je schwieriger (und weit weniger effizient) Verfahren ein anderes Bild für jede Bildschirmauflösung und ein Verfahren in Ihrem onCreate () zu haben, wäre es, die Bildschirmabmessungen abzurufen und das Bild entsprechend der Werte, die Sie zurückbekommen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top