Android: Wie Android 1.6+ von Skalieren von Bildern zu stoppen
Frage
ich meine Build Build aktualisierte gegen Android 1.6, und jetzt sind meine Bitmaps verkleinern auf hohen Dichte Bildschirme. Ich dieses Verhalten nicht will. Ich habe dies einen Schuss:
http://blog.tomgibara.com/post/190539066/android- unscaled-Bitmaps
aber die Bilder sind Skalierung STILL, das heißt, wenn ich sie auf eine bestimmte Höhe und Breite festgelegt. Wenn ich wrap_content
verwenden sie verkleinert.
Ich habe ein Bild loader die nicht skalierten Bitmap-Loader mit einem ziehbar erstellen wie folgt:
Bitmap bm = UnscaledBitmapLoader.loadFromResource(imageBufferInputStream);
drawable = new BitmapDrawable(bm);
, die ich zugewiesen werden später zu einem Image etwa so:
imageView.setImageDrawable( copyBitmapDrawable( (BitmapDrawable) drawable) );
Lösung 3
Wrapping die Bitmap mit einem Drawable
ist das Problem. Die Drawable
skaliert die Bitmap
. Statt eine Drawable
verwenden, weisen Sie den Bitmap
zum ImageView
direkt imageView.setImageBitmap(Bitmap)
verwendet wird.
Andere Tipps
Um ein Bild nicht skaliert, wenn es von einer Ressource (zum Beispiel mit BitmapFactory.decodeResource) Laden Sie haben es zu finden in res / ziehbar-nodpi statt der üblichen ziehbar, ziehbar-LDPI und so weiter.
Mit
new BitmapDrawable(this.getResources(), bmp);
statt
new BitmapDrawable(bmp);
sollte das Problem lösen.
Verwenden Sie ImageView.ScaleType . Die CENTER
konstanten Preformen keine Skalierung, so ich, dass das erraten, was Sie suchen.
Übrigens, haben Sie Pixel oder Dips als Größeneinheiten verwenden? Verwendung Dips (dichteunabhängige-Pixel) ist ein Mittel zur Anzeige auf mehreren Auflösungen zu standardisieren. Hier finden Sie ein paar Tipps hier .