有时我会在ImageView中设置图像,有时不会 问题是当我没有图像时,我想删除ImageView添加的空白区域。
if(post.getImageUrl()!=null || !post.getImageUrl().equals("")) {
Picasso.with(context).load(post.getImageUrl()).into(holder.imageView);
}
else{
holder.imageView.setVisibility(View.GONE);
}
我的xml
<ImageView
android:layout_width="match_parent"
android:layout_height="500dp"
android:scaleType="centerCrop"
android:padding="0dp"
android:id="@+id/imageViewHero"
android:adjustViewBounds="true"/>
但它没有用,空白区仍然存在。
有什么想法吗?
答案 0 :(得分:1)
反转你的逻辑。
在XML
中将可见性设置为GONEandroid:visibility="gone"
在加载图像的Picasso条件下,将其设置为VISIBLE,然后删除其他
Picasso imgLoader = Picasso.with(context);
String imgUrl = post.getImageUrl();
if(!TextUtils.isEmpty(imgUrl)) {
holder.imageView.setVisibility(View.VISIBLE);
imgLoader.load(imgUrl).into(holder.imageView);
}
或者,加载默认的占位符图像
Picasso.with(context)
.load(post.getImageUrl())
.placeholder(R.drawable.user_placeholder) // A default image
.error(R.drawable.user_placeholder_error) // An error image
.into(holder.imageView);
答案 1 :(得分:1)
试用此解决方案
在ImageView xml中设置visibilty To Gone
android:visibility="gone"
并在代码中显示内部if if block
if(post.getImageUrl()!=null || !post.getImageUrl().equals("")) {
holder.imageView.setVisibility(View.Visible);
Picasso.with(context).load(post.getImageUrl()).into(holder.imageView);
}
<ImageView
android:layout_width="match_parent"
android:layout_height="500dp"
android:scaleType="centerCrop"
android:padding="0dp"
android:visibility="gone"
android:id="@+id/imageViewHero"
android:adjustViewBounds="true"/>
答案 2 :(得分:1)
最佳答案是将ImageView的高度设置为0:
imgDisplay.setImageBitmap(null);