2010-12-09 9 views
1

Ich habe eine ähnliche Frage gestellt, aber ich dachte, ich würde eine allgemeinere Frage stellen, um eine größere Bandbreite an Eingaben zu erhalten.Wie beginnen Sie mit der Entwicklung einer Android-App für mehrere Gerätegrößen/-dichten?

Ich stelle diese Frage, weil die letzten zwei Apps, die ich entwickelt habe, warf ich alle Bildressourcen in den Drawable-HDpi-Ordner, nicht mit Landscape-Modus, testete es hauptsächlich auf meinem eigenen Droid-Handy, und im Grunde fühlte ich mich als würde ich nur für mein eigenes Gerät entwickeln. Obwohl ich an den entsprechenden Stellen immer dpi und Sp verwendet habe, reicht dies nicht aus, um meine App auf anderen Bildschirmgrößen/-dichten zu skalieren. Es skaliert manchmal in Ordnung, würde aber immer dazu neigen, einen Teil des Bildschirms auf kleinere Größen abzuschneiden.

Was sind die besten Möglichkeiten, um eine App zu starten, die auf allen Geräten zumindest einigermaßen gut skaliert wird?

Zum Beispiel, sollte ich meine App-Layouts so konstruieren, dass es auf dem Standard-HVGA-Bildschirm korrekt aussieht und es zu größeren Dichten skalieren lässt? Wäre es eine bewährte Methode, aktiv sowohl Hoch- als auch Querformat-Layoutdateien zu erstellen?

Was machst du, um sicherzustellen, dass deine Apps auf allen Geräten gut aussehen, ohne nur auf eine Größe zu fokussieren und später herumzukramen, um das zu bewältigen?

+2

http://developer.android.com/guide/practices/screens_support.html –

Antwort

2

Ich habe immer folgen diese Regeln:

  • setzen alles von supports-screens auf true. Android wird wissen, dass Sie für jede Bildschirmumgebung bereit sind, und Sie werden wissen, dass es keine Bildschirmvirtualisierung gibt. Beispiel: Selbst wenn Ihr Gerät über einen großen Bildschirm verfügt, wird Ihr Code diesen als normalen Bildschirm anzeigen
  • Verwenden Sie keine festen Größen für Breite und Höhe. Wenn Sie müssen, verwenden Sie "dp" als virtuelles Pixel. Verwenden Sie WRAP_CONTENT und FILL_PARENT. "dp" ist ein physikalisches Pixel auf dem Bildschirm mit 160 dpi. Wenn Ihre App auf einem Gerät mit geringerer/höherer Dichte ausgeführt wird, berechnet Android dies für Sie neu.
  • Verwenden Sie "DP" als eine Einheit für die Schriftgröße.
  • versuchen, alles relativ zu tun. Sie können RelativeLayout verwenden, wenn Sie etwas unter einem anderen haben möchten. Wenn Sie Prozentsätze benötigen, können Sie LinearLayout verwenden.
  • Verwenden Sie neun Pathes als Hintergrund.
  • Stellen Sie sicher, dass Sie die Ressourcen in die richtigen, ausklappbaren/Layoutordner legen.

Off-Kurs, dies nicht für jedes Projekt beste Ansatz ist :) Manchmal will UI-Designer einige Extra:]

+0

Could Sie diskutieren "Verwenden Sie keine festen Größen für Breite und Höhe." ein bisschen weiter? Was sollte anstelle von Hard-Coding eine Breite oder Höhe von etwas verwendet werden? – joepetrakovich

+0

Die Attribute der Unterstützungsbildschirme sind standardmäßig auf "true" gesetzt, sodass es keinen Sinn macht, sie alle auf "true" zu setzen. – pheelicks

+0

@pheelicks: nicht korrekt. Es hängt von Tag –