Salut je travaille sur une application qui va charger des images et je cherche à mettre à l'échelle chaque image à sa plus grande taille, par exemple si l'image est une image de paysage (si la largeur est plus grande que la hauteur) je voudrais étirer la largeur pour remplir la largeur du téléphone et la hauteur de l'échelle pour garder son ratio d'aspect. Si la hauteur est plus grande que la largeur, c'est-à-dire une image portrait, l'image doit être mise à l'échelle pour s'adapter à la hauteur du téléphone et la largeur doit alors s'ajuster pour conserver le rapport d'aspect que j'ai eu un peu de mal. Nous l'avons fait jusqu'à présent, mais toute aide serait grandement appréciée.Android Scale Image à la plus grande taille
final ImageView i = new ImageView(mContext);
i.setImageResource(mImageIds[position]);
i.setBackgroundResource(android.R.color.black);
//TODO need to get actual size of drawable not view size which is 0
ViewTreeObserver vto = i.getViewTreeObserver();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
public boolean onPreDraw() {
int w = i.getMeasuredWidth();
int h = i.getMeasuredHeight();
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
if(w <= h){
//TODO need to think about landscape
h = height - convertDpToPixel(50, context);
w = w*(width);
}else{
h = h*(height);
w = width;
}
//TODO set imageview to w and h
return true;
}
});
Quand vous dites que vous avez eu du mal à obtenir votre code de travail, quel problème (s) avez-vous eu exactement ? Exception levée? L'image n'est pas re-s-zed comme vous l'attendiez? – Kerry
Ru la recherche de ce http://stackoverflow.com/a/9478320/1012284 –
j'ai essayé d'utiliser bitmap resizedbitmap et ce qui ne se produisait pas et obtenait des erreurs oom donc je me demandais comment je devais définir la vue de l'image à mon w et h – user577732