2010-05-30 5 views
7

Ich kann nicht scheinen, meine ImageView zu erhalten, um sein Quellbild in seiner ursprünglichen Größe anzuzeigen. Die Image sieht wie folgt aus:Android: ImageView skaliert Quellbild

<ImageView 
android:id="@+id/Logo" 
android:src="@drawable/logo" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
> 
</ImageView> 

Das Quellbild 140 Pixel breit ist, noch auf dem Bildschirm des Nexus One, das 480 Pixel breit ist es die Hälfte der Breite verbraucht. Die Verwendung absoluter Werte in px oder dp für die Breite und Höhe ändert nichts. Das Bild sieht auch sehr antialiased von der Upscaling. Warum passiert das und wie kann ich das verhindern?

Antwort

7

Am wahrscheinlichsten skaliert Android das Bild, weil Sie nicht gesagt haben, dass Sie große Bildschirme unterstützten. Fügen Sie Ihrem Manifest eine suitable <supports-screens> element hinzu und sehen Sie, ob das hilft.

+0

Ich habe gerade Ihren Vorschlag versucht und es hat definitiv etwas damit zu tun. Vielen Dank! Das Bild hat jetzt die "richtige" Größe, wenn ich die Abmessungen des Bildes als absolute Pixelwerte für layout_width und layout_height verwende. Wenn ich wrap_content verwende, ist das Bild immer noch so groß wie zuvor, was, wie es scheint, auch dieselbe Größe hat wie wenn ich die Dimensionen des Bildes mit "dp" als Dimension verwende. Ich denke, so funktioniert wrap_content. In diesem Fall wäre es sinnvoll, das Bild auf einem Gerät mit einem Bildschirm mit hoher Bildschirmauflösung wie dem Nexus zu groß darzustellen. –

+0

Was noch seltsam ist, ist, dass wenn ich wrap_content für layout_width und layout_height verwende, aber die absoluten Pixelwerte für maxWidth und maxHeight verwenden, die keine Wirkung haben. Da die Verwendung von Pixeldimensionen sowieso nicht erwünscht ist, frage ich mich, ob es andere Möglichkeiten gibt, das Upcale des Bildes zu verhindern. –

+1

Wahrscheinlich möchten Sie ohnehin zwei Versionen Ihres Bildes, eines für Bildschirme mittlerer Dichte und eines für Bildschirme hoher Dichte. Versuchen Sie, Ihr Bild in 'res/drawable-hdpi /' zu setzen und sehen Sie, ob das hilft. – CommonsWare