Модераторы: javastic
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Галерея с использование HorizontalScrollView, галерея 
:(
    Опции темы
rockitin
  Дата 21.12.2014, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 21.12.2014

Репутация: нет
Всего: нет



Всем привет!

Вот уже пару дней не могу решить на первый взгляд простую проблему. 
Я пишу простую галерею.
В качестве базового компоновщика я взял HorizontalScrollView, в который вложен LinearLayout, вот код main layout'a:

Код

<HorizontalScrollView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/horizontalScrollView"
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
    <LinearLayout android:orientation="horizontal"
                  android:id="@+id/mainLayout"
                  android:fillViewport="true"
                  android:layout_gravity="center"
                  android:layout_width="match_parent"
                  android:layout_height="match_parent"/>
</HorizontalScrollView>


Фото, масштабируя, я добавляю программно: 

Код

    public void setViewList(Integer linearLayoutId, Integer[] imageIdList,
                            Activity activity) {

        displayMetrics = ImageUtils.getDisplayMetric(activity);

        LinearLayout ll = (LinearLayout) findViewById(linearLayoutId);
        for (Integer imgId : imageIdList) {
            ImageView imageView = new ImageView(getContext());

            imageView.setImageResource(imgId);
            imageView.setScaleType(ImageView.ScaleType.MATRIX);

            Integer[] displayMetrics = ImageUtils.getDisplayMetric(activity);
            ImageUtils.scaleImage(imageView, displayMetrics[0], displayMetrics[1]);

            Integer[] dstDimension = ImageUtils.createDimension();
            ImageUtils.getImageSize(imageView, dstDimension);
            getImageSizeList().add(dstDimension);

            ll.addView(imageView);
        }

    }


Вот как выглядит код ImageUtils.scaleImage:

Код

    public static void scaleImage(ImageView imView, int screenWidth, int screenHeight) {
        Drawable temp = imView.getDrawable();

        Bitmap imBitmap = ((BitmapDrawable)temp).getBitmap();

        int imWidth = imBitmap.getWidth();
        int imHeight = imBitmap.getHeight();

        float xScale = ((float) screenWidth) / imWidth;
        float yScale = ((float) screenHeight) / imHeight;

        float scale = xScale <= yScale ? xScale : yScale;
        Matrix scaleMatrix = new Matrix();
        scaleMatrix.postScale(scale, scale);

        Bitmap scBitmap = Bitmap.createBitmap(imBitmap, 0, 0, imWidth, imHeight, scaleMatrix, true);

        BitmapDrawable scDrBitmap = new BitmapDrawable(imView.getResources(), scBitmap);
        imView.setImageDrawable(scDrBitmap);
        imView.setAdjustViewBounds(true);
        LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
            scBitmap.getWidth(), scBitmap.getHeight()
        );
        layoutParams.gravity = Gravity.CENTER;

        imView.setLayoutParams(layoutParams);
    }


В итоге каждое изображение должно полностью заполнять экран по ширине, но при добавлении двух фото первое выводится не полностью, а на половину, за ним сразу же идёт второе (пример в прикреплённом файле). Почему так происходит, ума не приложу, так как каждое фото предварительно масштабируется на всю ширину экрана.




Это сообщение отредактировал(а) rockitin - 21.12.2014, 17:34
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Android | Следующая тема »


 




[ Время генерации скрипта: 0.1054 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.