2016-08-26 12 views
2

Google Material Design empfiehlt, Elemente so auszurichten, dass der Text auf eine 4-dp-Basislinie fällt (source). Es empfiehlt auch spezifische Abstände zwischen Elementen.Android-Textfeld: Abstand zwischen Zeile und Text

Ich bin ein Designer und ich denke, die Arbeit mit diesen Prinzipien hilft wirklich, ein klares und visuell ansprechendes Layout zu haben. Die Entwickler in meinem Team haben jedoch Probleme, die Designs in Code umzuwandeln.

Ein Beispiel: Take In ein einzeiliges Texteingabefeld. Laut Google Material Design (und meinem Design) sollte der Abstand zwischen der Linie am unteren Rand 12dp sein. Der Entwickler sagt, dass es nicht möglich ist, den Abstand zwischen der Linie und dem Text zu steuern. Ist das wahr? In diesem Fall schlagen die Google-Designrichtlinien ein Verhalten vor, das von den Google-eigenen Android-APIs nicht implementiert werden kann.

enter image description here

Auf der einen Seite will ich nicht die Entwickler das Leben unnötig schwer machen. Auf der anderen Seite gewinnt das Aussehen einer App wirklich an Bedeutung, wenn die Entfernungen nicht willkürlich festgelegt werden.

Ich habe einen Hintergrund in Web-Entwicklung, wo vertikale Rhythmus ein häufiges Problem ist. In der Tat ist das Problem so häufig, dass ein paar Ansätze dokumentiert sind, um es zu lösen (example). Ist es nicht dasselbe mit Android?

Auf eine allgemeinere Anmerkung, wie viel Design-Treue kann ich von den Entwicklern erwarten? Können Sie mir in die richtige Richtung zeigen, wo sie nach Lösungen für dieses Problem suchen können?

+1

versuchen 'TextView # setLineSpacing' – pskink

Antwort

-1

Hier ist meine Sicht auf das Problem: Wenn Sie die Abmessungen von x dp Einheiten angeben, sagen Sie im Grunde, dass die Dimension x px auf einem 160 dpi Bildschirm sein sollte. Wenn der Bildschirm 240 dp ist, wird die Dimension in x * 1.5 px konvertiert. Auf den Punkt gebracht: px = dp * (dpi/160).

Jetzt, mit der großen Anzahl von Geräten im Android-Ökosystem, werden Sie sicher sein, dass dezimale px-Einheiten IMMER eingeschlichen werden. Android hat seine eigenen Möglichkeiten, diese zu lösen, was wahrscheinlich im obigen Bildschirm geschieht. Für eine Einheit, die so klein ist wie 12dp, ist das System dazu verpflichtet, einige Pixel zu "essen", um die Dimension für einzelne Bildschirme zu übersetzen.

Als Entwickler und Designer kann ich übrigens zuversichtlich sagen, dass Ihr Entwickler Sie mental erstochen hat, wenn Sie ihn gebeten haben, Wege zu finden, um die Höhe zwischen der unteren Zeile und dem Text zu ändern.

+0

Dies ist kein Problem von Pixeln Wesen beim Runden verschluckt. Ich schaue mir Dropbox Anmeldeformular an und es entspricht den Spezifikationen. Auf dem gleichen Handy schaue ich mir den Build an, den mein Entwickler mir gegeben hat und nicht. – bootsmaat

1

Setzen Sie android:paddingBottom="12dp" auf Ihrem EditText.