Я постараюсь быть максимально ясным.
Вот что я пытаюсь сделать
Средство просмотра изображений, где изображение будет отображаться на экране устройства настолько большим, насколько это возможно.
Для этой цели и для лучшего пользовательского опыта я подумал о галерее.
Пока там все ок!
Проблема
Проблема в том, что в функции getView моего Адаптера он использует только Gallery.LayoutParams первого изображения, которое у меня есть в моей галерее. Это означает, что если первое изображение - пейзаж, а второе - портрет, то второе будет отображаться как пейзаж с тем же размером, что и первый. Я сбрасываю Gallery.LayoutParams, но это не имеет значения, у него все еще есть LayoutParams первого ImageView.
Код
public View getView(int position, View convertView, ViewGroup parent) {
ImageView im = new ImageView(mContext);
Bitmap bm = BitmapFactory.decodeByteArray(gallery.get(position).mContent, 0, gallery.get(position).mContent.length);
im.setImageBitmap(bm);
int width = 0;
int height = 0;
if (bm.getHeight() < bm.getWidth()) {
width = getWindowManager().getDefaultDisplay().getWidth();
height = bm.getHeight() * width / bm.getWidth();
}
else {
height = getWindowManager().getDefaultDisplay().getHeight();
width = bm.getWidth() * height/ bm.getHeight();
}
Gallery.LayoutParams lp = new Gallery.LayoutParams(width, height);
im.setLayoutParams(lp);
return im;
}
Если кто-нибудь из вас поймет, почему я был бы очень рад узнать ответ,