Eu tenho um bitmap obtido de uma String Base64 do meu banco de dados remoto ( encodedImage
é a string que representa a imagem com 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 é o meu ImageView
Ok, mas preciso redimensionar esta imagem antes de mostrá-la no ImageView
meu layout. Eu tenho que redimensioná-lo para 120x120.
Alguém pode me dizer o código para redimensioná-lo?
Os exemplos que encontrei não puderam ser aplicados a um bitmap obtido da string base64.
Respostas:
Mudança:
Para:
fonte
EDIT: como sugerido por @aveschini, eu adicionei
bm.recycle();
para vazamentos de memória. Observe que, se você estiver usando o objeto anterior para outros fins, manipule-o de acordo.fonte
public Bitmap getResizedBitmap(Bitmap bm, int newWidth, int newHeight)
. Passei muito tempo tentando descobrir. ; PSe você já possui um bitmap, poderá usar o seguinte código para redimensionar:
fonte
Escala com base na proporção :
Para usar a altura como base em vez da largura, mude para:
fonte
Escale um bitmap com um tamanho e largura máximos de destino, mantendo a proporção:
fonte
tente este código:
Espero que seja útil.
fonte
Alguém perguntou como manter a proporção nesta situação:
Calcule o fator que você está usando para dimensionar e use-o para ambas as dimensões. Digamos que você queira que uma imagem tenha 20% da tela em altura
para obter a resolução da tela, você tem esta solução: Obtenha as dimensões da tela em pixels
fonte
Tente o seguinte: Esta função redimensiona um bitmap proporcionalmente. Quando o último parâmetro é definido como "X", ele
newDimensionXorY
é tratado como nova largura e, quando definido como "Y", uma nova altura.fonte
fonte
fonte
fonte
A partir da API 19, o bitmap setWidth (int width) e setHeight (int height) existem. http://developer.android.com/reference/android/graphics/Bitmap.html
fonte
Redimensionamento de bitmap com base em qualquer tamanho de exibição
fonte
Embora a resposta aceita esteja correta, ela não é redimensionada
Bitmap
mantendo a mesma proporção . Se você estiver procurando por um método para redimensionarBitmap
mantendo a mesma proporção, você pode usar a seguinte função de utilitário. Os detalhes de uso e a explicação da função estão presentes neste link .fonte
fonte
Mantendo a proporção,
fonte