Android 使用Glide在SliderCard的ImageView中加载图像会产生奇怪的结果

Android 使用Glide在SliderCard的ImageView中加载图像会产生奇怪的结果,android,android-imageview,android-library,android-glide,Android,Android Imageview,Android Library,Android Glide,我用它来开发一个应用程序,我从网络上抓取图像,所以我用glide在imageview中加载图像,我试过这样做 public class SliderAdapter extends RecyclerView.Adapter<SliderCard> { private final int count; private String[] mPlayerImageUrlArray; // Adding an array of Urls instead of int resIds priva

我用它来开发一个应用程序,我从网络上抓取图像,所以我用glide在imageview中加载图像,我试过这样做

public class SliderAdapter extends RecyclerView.Adapter<SliderCard> {

private final int count;
private String[] mPlayerImageUrlArray; // Adding an array of Urls instead of int resIds
private final View.OnClickListener listener;

public SliderAdapter(String[] mPlayerImageUrlArray, int count, View.OnClickListener listener) {
    this.mPlayerImageUrlArray = mPlayerImageUrlArray;
    this.count = count;
    this.listener = listener;
}

@Override
public SliderCard onCreateViewHolder(ViewGroup parent, int viewType) {
    final View view = LayoutInflater
            .from(parent.getContext())
            .inflate(R.layout.layout_slider_card, parent, false);

    if (listener != null) {
        view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                listener.onClick(view);
            }
        });
    }

    return new SliderCard(view);
}

@Override
public void onBindViewHolder(SliderCard holder, int position) {
    holder.setContent(mPlayerImageUrlArray[position]);
}

@Override
public void onViewRecycled(SliderCard holder) {
    holder.clearContent();
}

@Override
public int getItemCount() {
    return count;
}

}
但结果是

正如您所看到的,图像的高度和宽度并不像可绘制的那样完美,我在代码中做了一些更改,如您所见

问题是我如何才能让图像像可抽片一样完美地覆盖幻灯片卡

更新


您能发布布局滑块卡片吗?请稍等。@HamidReza代码已添加
public class SliderCard extends RecyclerView.ViewHolder {

private static int viewWidth = 0;
private static int viewHeight = 0;

private final ImageView imageView;


public SliderCard(View itemView) {
    super(itemView);
    imageView = (ImageView) itemView.findViewById(R.id.image);

}

void setContent(final String imgUrl) {
    Log.e("IMG_URL", "setContent() is " + imgUrl);
    if (viewWidth == 0) {
        Log.e("IF", "Called ");
        itemView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                itemView.getViewTreeObserver().removeOnGlobalLayoutListener(this);

                viewWidth = itemView.getWidth()*2;//Here I tried to double the image size but in vain
                viewHeight = itemView.getHeight()*2;//Here I tried to double the image size but in vain
                loadBitmap(imgUrl);
            }
        });
    } else {
        loadBitmap(imgUrl);
    }
}

void clearContent() {
   /* if (task != null) {
        task.cancel(true);
    }*/
}

private void loadBitmap(String imgUrl) {
    //Glide comes in to place here
    imageView.setMaxWidth(viewWidth);
    imageView.setMaxHeight(viewHeight);

    Glide.with(imageView.getContext())
            .load(imgUrl)
            .into(imageView);

}

}
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:cardCornerRadius="@dimen/card_corner_radius"
    app:cardPreventCornerOverlap="false">

    <ImageView
        android:id="@+id/image"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center"/>

    <View
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/white"
        android:alpha="0"/>

</android.support.v7.widget.CardView>