2 Stimmen

Was ist der Unterschied zwischen Android SDK 1.5 und 2.0 in Bezug auf das Rendering?

Ich bin fast fertig mit der Entwicklung einer Android-Anwendung. Aber es scheint ein Problem zu geben. Als ich mit der Arbeit an dem Projekt begann, habe ich nur die Standardauflösung des 1.5-Geräts verwendet, nämlich 320x480. Aber jetzt, wo ich in der Testphase bin, habe ich angefangen, sowohl in 1.5 als auch in 2.0 mit 480x800 und 480x854 zu testen. Diese Auflösungen sind im 1.5 AVD-Manager nicht definiert, also habe ich die mitgelieferten Tools benutzt, um meine eigenen zu erstellen. Ich habe die Auflösung und die neuen dpi eingestellt (240 für die großen Displays und 16o für die kleinen). Als ich das Ganze getestet habe, ist folgendes passiert.

In 1.5, wenn ich meine Konstanten auf eine hohe Auflösung einstelle und die App mit der spezifischen AVD ausführe, erhalte ich proportionale und gut ausgerichtete Komponenten, aber die Bilder haben die gleiche Auflösung und die Textschriften behalten ebenfalls ihre Größe. Natürlich streckt sich das ganze Layout, so dass ich jetzt längere Zeilen in meiner ListActivity habe.

In 2.0 hingegen habe ich die Konstanten überhaupt nicht verändert. Aber die Situation war so, dass das Aussehen der Anwendung gleich blieb. Die Bilder wurden gestreckt, damit sie in die neu erweiterten Container passen, aber alles sah aus wie in der ursprünglichen Auflösung, in der ich die Anwendung entwickelte, nur größer.

Meine Frage ist, warum und wie ist das passiert? Es gibt einige Änderungen in 2.0 in Bezug auf das Layout, aber was genau sind sie? Und wie kann ich erreichen, dass meine App in 1.5 genauso aussieht wie in 2.0?

Es fällt mir schwer, die Situation zu beschreiben, und ich kann aus rechtlichen Gründen keine Bildschirmfotos veröffentlichen. Wenn Sie also eine Klarstellung benötigen, zögern Sie nicht zu fragen. Jede Hilfe ist willkommen. Ich danke Ihnen.

P.S. Wenn ich von Tests spreche, meine ich nur Tests im Emulator. Es wurden keine echten Geräte verwendet.

2voto

CommonsWare Punkte 950864

Um mich selbst zu zitieren:

Wenn Ihre Anwendung kompiliert ist für Android 1.5 oder niedriger kompiliert ist, wird Android davon aus, dass Ihre Anwendung für die für die klassische Bildschirmgröße und Größe und Auflösung. Android wird dann automatisch das Folgende tun:

  • Wenn Ihre Anwendung auf einem Gerät mit einem größeren Bildschirm installiert ist, Android führt Ihre Anwendung im "Kompatibilitätsmodus" ausgeführt und skaliert skaliert alles auf Basis der tatsächlichen Größe. Nehmen wir also an, Sie haben einen 24px quadratische PNG-Datei, und Android installiert und führt Ihre Anwendung auf einem Gerät mit der physikalischen Standardgröße, aber einer WVGA-Auflösung (ein sogenannter "hochauflösenden" Bildschirm). Android könnte Ihre PNG-Datei auf 36 Pixel skalieren, wenn es angezeigt wird, so dass sie den gesamten gleichen sichtbaren Platz auf dem Bildschirm einnimmt. Auf Seite behandelt Android dies automatisch automatisch; auf der Minusseite, Bitmap-Skalierungsalgorithmen dazu, die Bilder die Bilder ein wenig unscharf.
  • Android sperrt Ihre Anwendung für die Ausführung auf einem Gerät mit einem kleineren Bildschirm. Daher werden QVGA Geräte, wie das HTC Tattoo, Ihre Anwendung nicht in der Lage, Ihre Anwendung abzurufen, selbst auch wenn sie im Android Market verfügbar ist. Markt verfügbar ist.

Wenn Ihre Anwendung für Android 1.6 oder höher kompiliert ist, geht Android davon aus, dass Sie mit allen Bildschirmgrößen umgehen und führt Ihre Anwendung daher nicht im "Kompatibilitätsmodus" aus.

Ich empfehle Ihnen, das Folgende zu lesen:

(HINWEIS: die AndroidGuys-Links werden möglicherweise etwas langsam geladen - die Website hat einige Probleme)

Die zitierte Passage stammt aus dem dritten Aufzählungspunkt oben.

1voto

snctln Punkte 12105

Werfen Sie einen Blick in die Android-Dokumentation auf Unterstützung für mehrere Bildschirme . Grundsätzlich ist das 1.5 SDK nur für die Anzeige von HVGA-Inhalten gedacht, das 1.6 SDK ist die erste Version, die wirklich mehrere Auflösungen unterstützt.

FTA:

Android 1.5 und frühere Versionen der Die Plattform wurde für die Unterstützung eine einzige Bildschirmkonfiguration - HVGA (320x480) Auflösung auf einem 3,2"-Bildschirm.

...

Beginnend mit Android 1.6, unterstützt die Plattform die Unterstützung für mehrere Bildschirmgrößen und Auflösungen, die die vielen neuen Gerätetypen und und Größen von Geräten, auf denen die Plattform laufen wird.

Machen Sie sich also grundsätzlich keine Sorgen über mehrere Auflösungen in Android 1.5, ich kompiliere meinen Code immer mit dem 1.6SDK für die Unterstützung mehrerer Auflösungen, setze aber das MinimumSDK auf 1.5, um ein viel breiteres Publikum von Benutzern zu erreichen.

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