2016-04-23 10 views
0

Ich habe Schwierigkeiten, den richtigen drawables auf den richtigen Bildschirm zu bekommen. Ich folgte den Anweisungen des Android-Entwicklers und erstellte eine Version per drawable für ldpi bis xxhdpi. Allerdings, physisch kleine und große Bildschirme mit der gleichen dpi wählen Sie die gleiche drawable, wo ich möchte, dass der größere Bildschirm einen größeren bekommen.Wie wird mit zahlreichen Kombinationen von Bildschirmgrößen und -dichten umgegangen?

Die Layouts sind ziemlich geradlinig, also glaube ich nicht, dass ich neue mit verschiedenen Qualifiern erstellen muss, also muss ich eine gute Möglichkeit finden, drawables (und/oder Bildschirmauflösungen) zu kategorisieren. Ich nehme an, dass es mit dem Qualifier sw<N>dp oder einem seiner Geschwister gemacht wird, aber wie wähle ich die Intervalle? Ich habe Beispiele gesehen (sw600dp, w820dp, usw.), aber keine Richtlinien, wie man sie bestimmt. Muss ich es mit Trial-and-Error auf verschiedenen AVD-Konfigurationen machen, und welche sind am besten dazu geeignet?

Wie skaliere ich meine Zeichen, wenn ich bestimmt habe, welche -sw<N>dp verwendet werden soll? Befolge ich den Standard 3:4:6:8:12:16 oder etwas anderes?

Noch einmal, die sw<N>dp Qualifier scheinen nicht für drawables zu sein, da sie als Ergebnis seltsam und verschwommen skaliert werden. Benutze ich stattdessen layouts mit den Qualifiern, aber wie? Ich bin wirklich ratlos hier ...

+0

Sie missverstehen, wie Zeichen, Layouts, Bildschirmgröße und Auflösung interagieren. Drawables sind in Auflösungsbereichen * genau *, denn wenn sie nicht wären, würden Sie "verschwommene" Assets und ähnliches sehen. Zeichensätze in Größen-Buckets zu setzen, ist definitiv das Falsche. Sie müssen Zeichen in verschiedenen Größen erstellen und anschließend größenspezifische Layouts erstellen, um sie auszuwählen. Alternativ können Sie übergroße Zeichnungsobjekte und größenspezifische Dimensionen erstellen, um sie zu verkleinern. Ich finde selten die Notwendigkeit, mehr als zwei Größen-spezifische Layouts (Telefon und Tablet) zu erstellen, und ich ändere nie die Größe von Zeichen. – 323go

Antwort

0

Allerdings, physikalisch kleine und große Bildschirme mit der gleichen dpi wählen Sie die gleiche Zeichen, wo ich möchte, dass der größere Bildschirm einen größeren bekommen.

Setzen Sie die kleineren in res/drawable-...dpi/ Verzeichnisse, für variierende Werte von ... (z.B. x). Setzen Sie die größeren in res/drawable-swNNNdp-...dpi/, für verschiedene Werte von NNN (z. B. 800) und .... Beachten Sie, dass der Qualifier -swNNNdp im Namen vor dem -...dpi Qualifier sein muss.

aber wie wähle ich die Intervalle?

Das liegt an Ihnen. Sie sind derjenige, der sagt: "Ich möchte, dass der größere Bildschirm einen größeren bekommt". Nur du weißt, was du willst, und nur du weißt, wo der Cutoff zwischen "größer" und nicht "größer" liegt. Dafür gibt es keine universelle Antwort, ebenso wenig wie eine universelle Antwort darauf, wann Sie das Layout einer Webseite "mobil" ändern oder nicht.

Muss ich es mit Trial-and-Error auf verschiedenen AVD-Konfigurationen tun, und welche sind am besten dazu geeignet?

Ich würde empfehlen, dass Sie es auf Hardware versuchen.

Wenn Sie entscheiden, dass Sie größere Bilder auf 7 "Tabletten und höher wünschen, wäre -sw600dp eine vernünftige Wahl. Wenn Sie entscheiden, dass Sie größere Bilder auf 10" Tabletten und höher wünschen, -sw720dp wäre eine vernünftige Wahl. Darüber hinaus brechen Sie ein Lineal aus und messen Sie die kürzeste Bildschirmbreite, dann multiplizieren Sie mit 160, um dpi zu erhalten. Google unterhält auch a database of many popular devices, mit den Abmessungen in px und dpi für jeden.

Wie skaliere ich meine Zeichen, wenn ich festgestellt habe, welche Option -swdp verwendet wird?

Noch einmal, das ist los. Wenn Sie entscheiden, dass die Bilder auf den größeren Bildschirmen um 50% größer sein sollen, erstellen Sie Ihre Bilder, die 50% größer sind. Wieder sind Sie derjenige, der sagt "Ich möchte, dass der größere Bildschirm einen größeren bekommt". Nur du weißt, was du willst, und nur du weißt, was "größer" bedeuten würde, dich zu etwas zu bringen, das du magst.