2011-07-24 18 views
7

He colocado algunos mapas de bits en res/drawable.No quiero que Android cambie el tamaño de mi mapa de bits Automáticamente

Después de cargar los mapas de bits por BitmapFactory.decodeResource(), descubro que se cambian de tamaño automáticamente según la densidad.

Esto no es lo que quiero. Quiero que mantengan su tamaño original (tamaño de píxel).

¿Qué debo hacer?

+1

Después de la segunda ronda de Goggling, descubro que hay una carpeta llamada "drawable-nodpi". Por lo tanto, el problema parece resuelto. – Sunny

Respuesta

1

Si ha guardado imágenes separadas en su hdpi, ldpi y mdpi, y está utilizando recursos para acceder a estas imágenes, entonces no puede hacer mucho.

Si solo desea que se use una imagen, conserve una sola copia en la carpeta mdpi y elimine las demás.

-1

Coloque sus imágenes en una carpeta llamada "dibujable" (sin el sufijo ldpi, mdpi, hdpi et al al). Probablemente necesite crearlo usted mismo (Eclipse, por ejemplo, no crea esto automáticamente).

Después de eso, elimine el recurso dibujable de sus otras carpetas dibujables.

+0

HE COLOCADO estos mapas de bits en res/drawable – Sunny

+1

La carpeta drawable se utiliza de la misma forma que drawable-mdpi/160dpi /. – Kostadin

+0

Este comentario es totalmente incorrecto. La respuesta correcta es usar inScaled set en falso o una carpeta -nodpi como se describe en otras respuestas. – RichieHH

17

Como se dijo en otra pregunta, usar la carpeta drawable-nodpi evitará que android cambie el tamaño de sus imágenes.

Además, si desea tener múltiples versiones de una imagen para formato hdpi y ldpi, pero no desea que el sistema las cambie de tamaño (para mantener una potencia de dos resoluciones, por ejemplo), puede usar el siguiente código mientras carga su bitmpap:

// ask the bitmap factory not to scale the loaded bitmaps 
BitmapFactory.Options opts = new BitmapFactory.Options(); 
opts.inScaled = false; 

// load the bitmap 
Bitmap bitmap = BitmapFactory.decodeResource(ctx.getResources(), R.id.mybmp, opts); 
+1

Necesita agregar las opciones en la isntrucción de la carga: Bitmap bitmap = BitmapFactory.decodeResource (ctx.getResources(), R.id.mybmp, opts); –

Cuestiones relacionadas