Android: Cómo dejar de Android 1.6 + a partir de imágenes de escala
Pregunta
He actualizado mi construcción para construir contra Android 1.6, y ahora mis mapas de bits se reducen en las pantallas de alta densidad. NO deseo que este comportamiento. Le he dado un tiro:
http://blog.tomgibara.com/post/190539066/android- sin escala-mapas de bits
Pero las imágenes están todavía descamación, es decir a menos que los puse a una altura y anchura específica. Si uso wrap_content
que se reducen.
Tengo un cargador de imagen utilizando el cargador de mapa de bits sin escala para crear un estirable de esta manera:
Bitmap bm = UnscaledBitmapLoader.loadFromResource(imageBufferInputStream);
drawable = new BitmapDrawable(bm);
que más tarde se le asigno a un ImageView de esta manera:
imageView.setImageDrawable( copyBitmapDrawable( (BitmapDrawable) drawable) );
Solución 3
Envolver el mapa de bits con un Drawable
es el problema. El Drawable
escala el Bitmap
. En lugar de utilizar un Drawable
, asignar el Bitmap
a la ImageView
directamente utilizando imageView.setImageBitmap(Bitmap)
.
Otros consejos
Con el fin de tener una imagen no reducido al cargarlo desde un recurso (por ejemplo, con BitmapFactory.decodeResource) usted tiene que localizar en res / dibujable-nodpi en lugar de la habitual estirable, estirable-LDPI y así sucesivamente.
Uso
new BitmapDrawable(this.getResources(), bmp);
en lugar de
new BitmapDrawable(bmp);
debería resolver el problema.
ImageView.ScaleType . Las preformas constantes CENTER
sin escala, así que supongo que eso es lo que está buscando.
Por cierto, no se utiliza píxeles o salsas como unidades de tamaño? Usando dips (independientes de la densidad-píxeles) es un medio de normalización de la visualización en múltiples resoluciones. Encontrará un par de consejos aquí .