使用Glide下载时,图像与中间的巨大空间分开

时间:2018-05-03 15:54:29

标签: android imageview

我尝试使用Glide lib从服务器下载后显示图像。下面是我的布局。问题是图像会自动调整它们之间的空间(垂直空间)。如果你看到我没有保留任何空间并且在xml预览中,我可以看到两个图像相互接触,一旦从服务器下载,我就可以在textview和imageview之间看到几乎一半的屏幕尺寸。如何管理这个空间。我阅读了很多博客和问题,但仍然不清楚。请咨询。

<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 :(得分:0)

使用此版本的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);

在您的情况下,您可以通过centerCrop更改imageView的sacleType,并以同样的方式在Glide中使用.centerCrop(),如果您想使用fitCenter,也可以通过fitCenter更改Glide() 这些属性可以在我提出的Glide版本中找到,运气好!

使用CrossFade()方法,我们可以在完成加载时使图像以想象力显示

使用CenterCrop()我们使图像占据ImageView的所有可用空间

使用PlaceHolder(R.drawable.ic_temp_img)我们可以在加载图片时放置临时图像

使用diskCacheStrategy(DiskCacheStrategy.ALL)我们可以配置我们将要使用的cahce策略

即使图像非常大thumbnail(0.5f),它也允许我们在完全加载时下载缩略图

答案 1 :(得分:0)

使用以下技巧

 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;