我正在尝试使用Glide加载图片:
case "image":
Log.d("TRecyViewAdapter", "Got Image");
ImageView imageView = new ImageView(context);
imageView.setLayoutParams(new GridLayoutManager.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.MATCH_PARENT
));
contents.addView(imageView);
Glide.with(context).load(part.getContent()).into(imageView);
break;
它没有显示任何内容。
但是,如果我将最后一行改为毕加索:
Picasso.with(context).load(part.getContent()).into(imageView);
正如我所料,图像以完整尺寸加载。
另外。如果我将Glide与占位符一起使用:
Glide.with(context).load(part.getContent()).placeholder(R.mipmap.def_avatar).into(imageView);
它加载图像但尺寸非常小(R.mipmap.def_avatar的大小)
我希望能够加载实际尺寸的图像,而无需指定占位符(它是一个动态视图,它应该显示大量不同尺寸的不同图像等等)
我想使用Glide而不是Picasso,因为我想要支持GIF动画。
答案 0 :(得分:1)
我刚刚为自己解决了这个问题,在我的ImageView中设置了以下属性,这对我来说很有用:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="fitCenter" />
</FrameLayout>
此处参考也是我的Android代码:
public class MyCardViewHolder extends CardViewHolder {
public MyCardViewHolder(View inflated) {
super(inflated);
}
public void bind(MyCard card) {
ImageView imageView = ((ImageView) itemView.findViewById(R.id.image));
Glide.with(itemView.getContext())
.load(card.backgroundImageUrl())
.into(imageView);
}
}