Изображения, разделенные огромным пространством между ними при загрузке с помощью Glide - PullRequest
0 голосов
/ 03 мая 2018

Я пытаюсь показать изображения после загрузки их с сервера с помощью Glide lib. Ниже мой макет. Проблема заключается в том, что изображения автоматически корректируют пространство между ними (вертикальное пространство). Если вы видите, что я не сохранил никакого пространства, и в режиме предварительного просмотра в формате xml я вижу, что оба изображения соприкасаются друг с другом, и, как только они загружаются с сервера, я могу увидеть почти половину размера экрана между textview и imageviews. Как этим пространством можно управлять. Я прочитал много блогов и вопросов, но все еще не ясно. Просьба совет.

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="@dimen/pad10">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:gravity="center_horizontal"
            android:text="@string/welcome"
            android:textColor="@color/CadetBlue"
            android:textSize="@dimen/topm25"
            android:textStyle="bold" />

        <ImageView
            android:id="@+id/image1"
            android:layout_width="200dp"
            android:layout_height="200dp"
            android:layout_gravity="center_horizontal"
            android:scaleType="fitCenter"
            android:src="@mipmap/ic_launcher" />

        <ImageView
            android:id="@+id/image2"
            android:layout_width="200dp"
            android:layout_height="200dp"
            android:layout_gravity="center_horizontal"
            android:scaleType="fitCenter"
            android:src="@mipmap/ic_launcher" />

    </LinearLayout>
</ScrollView>

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Работает, используя приведенный ниже трюк

 Display display = getActivity().getWindowManager().getDefaultDisplay();
        Point point = new Point();
        display.getSize(point);
        int width = point.x;


        ImageView im1 = (ImageView) view.findViewById(R.id.image1);
        ImageView im2 = (ImageView) view.findViewById(R.id.image2);


        im1.getLayoutParams().width = (width * 90) / 100;
        im2.getLayoutParams().width = (width * 90) / 100;
0 голосов
/ 03 мая 2018

Используйте эту версию Glide, это очень хорошо

implementation 'com.github.bumptech.glide:glide:3.7.0'

простой пример

Glide.with(context)
 .load("https://www.ejemplo.com/foto.png")
 .into(fotoImageView);

Пример с опциями

Glide.with(context)
 .load("https://www.ejemplo.com/foto.png")
 .crossFade()
 .centerCrop()
 .placeholder(R.drawable.ic_temp_image)
 .diskCacheStrategy(DiskCacheStrategy.ALL)
 .thumbnail(0.5f)
 .into(fotoImageView);

В вашем случае вы можете изменить sacleType вашего imageView на centerCrop и таким же образом использовать .centerCrop () в Glide, если вы хотите использовать fitCenter, также измените Glide на fitCenter () Эти свойства можно найти в версии Glide, которую я вам поставил, удачи!

с помощью метода CrossFade() мы можем заставить изображение появляться воображением, когда оно заканчивает загрузку

с CenterCrop() мы заставляем изображение занимать все доступное пространство ImageView

с помощью PlaceHolder(R.drawable.ic_temp_img) мы можем поместить временное изображение при загрузке изображения

с помощью diskCacheStrategy(DiskCacheStrategy.ALL) мы можем настроить стратегию cahce, которую мы будем использовать

Даже если изображение очень большое с thumbnail(0.5f), оно позволяет нам загружать миниатюру, пока оно полностью загружено

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...