Галерея и полноэкранный ImageView, проблема в соединении их

Я попытаюсь быть максимально ясным.

Здесь, Что я пытаюсь сделать

Программа просмотра изображений, где Изображение было бы дисплеем, столь большим, как они могут на экране устройства. Для этого purspose и для лучшего пользовательского опыта, я думал о Галерее. Непока там все не в порядке!

Проблема

Проблема состоит в том, что в функции getView моего Адаптера, это использует только Галерею. LayoutParams первого Изображения я имею в своей Галерее. Что означает, что, если первое изображение является средой и второй портрет, второй будет дисплеем как средой с тем же размером как первый. Я действительно сбрасываю Галерею. 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;
}

Если бы какой-либо из Вас видит, почему я был бы действительно для знания ответа,

6
задан Spredzy 26 June 2010 в 21:33
поделиться

1 ответ

Галерея заставляет всех детей иметь одинаковый размер. Кроме того, вы создаете новый View каждый раз, когда вызывается getView (), и это ужасная идея. Вы должны использовать convertView, если он не равен нулю. В настоящее время в галерее отсутствует функция, поэтому convertView всегда имеет значение null, но, чтобы извлечь выгоду из нее в будущей версии Android, все равно используйте convertView. Это также хорошая практика, которую вы должны применять в каждом адаптере, который вы пишете.

4
ответ дан 17 December 2019 в 07:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: