Tengo un mapa de bits tomado de una cadena Base64 de mi base de datos remota, (encodedImage
es la cadena que representa la imagen con Base64):
profileImage = (ImageView)findViewById(R.id.profileImage);
byte[] imageAsBytes=null;
try {
imageAsBytes = Base64.decode(encodedImage.getBytes());
} catch (IOException e) {e.printStackTrace();}
profileImage.setImageBitmap(
BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length)
);
profileImage es mi ImageView
Ok, pero tengo que cambiar el tamaño de esta imagen antes de mostrarla en mi ImageView
mi diseño. Tengo que redimensionarlo a 120x120.
¿Alguien puede decirme el código para cambiar su tamaño?
Los ejemplos que encontré no se pudieron aplicar a un mapa de bits de cadena base64 obtenido.
Respuestas:
Cambio:
A:
fuente
EDITAR: según lo sugerido por @aveschini, he agregado
bm.recycle();
pérdidas de memoria. Tenga en cuenta que en caso de que esté utilizando el objeto anterior para algún otro propósito, maneje en consecuencia.fuente
public Bitmap getResizedBitmap(Bitmap bm, int newWidth, int newHeight)
. Pasé mucho tiempo descubriéndolo. ; PSi ya tiene un mapa de bits, puede usar el siguiente código para cambiar el tamaño:
fuente
Escala basada en la relación de aspecto :
Para usar la altura como base de ancho, cambie a:
fuente
Escale un mapa de bits con un tamaño y ancho máximos de destino, mientras mantiene la relación de aspecto:
fuente
prueba este este código:
Espero que sea útil.
fuente
Alguien preguntó cómo mantener la relación de aspecto en esta situación:
Calcule el factor que está utilizando para escalar y úselo para ambas dimensiones. Supongamos que desea que una imagen tenga el 20% de la altura de la pantalla
para obtener la resolución de pantalla, tiene esta solución: obtenga las dimensiones de la pantalla en píxeles
fuente
Pruebe esto: esta función cambia el tamaño de un mapa de bits proporcionalmente. Cuando el último parámetro se establece en "X",
newDimensionXorY
se trata como un nuevo ancho y cuando se establece en "Y" una nueva altura.fuente
fuente
fuente
fuente
A partir de la API 19, existen Bitmap setWidth (int width) y setHeight (int height). http://developer.android.com/reference/android/graphics/Bitmap.html
fuente
Cambiar el tamaño del mapa de bits en función de cualquier tamaño de pantalla
fuente
Aunque la respuesta aceptada es correcta, no cambia el tamaño
Bitmap
manteniendo la misma relación de aspecto . Si está buscando un método para cambiar el tamañoBitmap
manteniendo la misma relación de aspecto, puede usar la siguiente función de utilidad. Los detalles de uso y la explicación de la función están presentes en este enlace .fuente
fuente
Manteniendo la relación de aspecto,
fuente