Issue 1:
Glide Version:

Xamarin.Gilde 3.7.0

Issue details / Repro steps / Use case background:

I've opened an issue here https://github.com/bumptech/glide/issues/1664 about loading images with match_parent width and wrap_content height. As per Robert suggestion, I have refactored my code to use margin instead of padding. Since then, the height of a image is not set to padding size anymore but now it is constrained to image holder's height. Another bug I encountered is inconsistent image's size on subsequent load. Please see some screenshots down this post for illustration.

Glide load line / GlideModule (if any) / list Adapter code (if any):

Glide.With(context)
.Load(currentPost.Embedded.WpFeaturedMedia.FirstOrDefault().SourceUrl)
.DiskCacheStrategy(DiskCacheStrategy.All)
.Placeholder(Resource.Drawable.placeholder)
.Error(Resource.Drawable.placeholder_error)
.Into(currentViewHolder.ThumbnailImage);

Layout XML:

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:auto="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="5dp"
android:elevation="3dp"
auto:cardCornerRadius="3dp"
android:id="@+id/postcardviewitem_cardview_root"
auto:cardBackgroundColor="@color/cardview_post_background">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/postcardviewitem_imageview_thumbnailimage"
tools:src="@android:drawable/ic_menu_gallery"
android:adjustViewBounds="true"
android:layout_alignParentTop="true"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp" />
<TextView
android:text="Title"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/postcardviewitem_imageview_thumbnailimage"
android:id="@+id/postcardviewitem_text_title"
android:textColor="@color/cardview_post_title"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingTop="10dp"
android:paddingBottom="5dp" />
<TextView
android:text="Author"
android:textAppearance="?android:attr/textAppearanceSmall"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/postcardviewitem_text_title"
android:id="@+id/postcardviewitem_text_author"
android:textColor="@color/cardview_post_author"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingBottom="5dp" />
</RelativeLayout>
</android.support.v7.widget.CardView>

Example:

Issue 2:
Glide Version/Integration library (if any): 3.5.2

Device/Android Version: S4/4.4

Issue details/Repro steps: Load a different sized thumbnail and image, or placeholder and image and note the result:

Glide load line:

class Delay extends UnitTransformation {
private final int sleepTime;
public Delay(int sleepTime) { this.sleepTime = sleepTime; }
@Override public Resource transform(Resource resource, int outWidth, int outHeight) {
try { Thread.sleep(sleepTime); } catch (InterruptedException ex) {}
return super.transform(resource, outWidth, outHeight);
}
}

@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final ImageView image = new ImageView(this);
setContentView(image);

// Saved as R.drawable.placeholder
String placeholder = "http://placehold.it/300x500/eedddd.png&text=PLACEHOLDER";
// Square image
String thumb = "http://placehold.it/300x300/eeeedd.png&text=THUMB";
// Wide image
final String full = "http://placehold.it/300x100/eedddd.png&text=FULL";
// Prepared request with unimportant clutter
final DrawableRequestBuilder<String> req = Glide
.with(this)
.fromString()
.diskCacheStrategy(DiskCacheStrategy.SOURCE) // disable network delay for demo
.skipMemoryCache(true) // make sure transform runs for demo
.crossFade(2000) // default, just stretch time for noticability
;

req.clone()
.thumbnail(req.clone()
.transform(new Delay(500)) // wait a little
.load(thumb)
)
.transform(new Delay(1000)) // wait before going from thumbnail to image
//.dontAnimate() // solves the problem
.load(full)
.into(image);

image.setOnClickListener(new OnClickListener() {
@Override public void onClick(View v) {
req.clone()
.load(full)
.placeholder(R.drawable.placeholder)
.transform(new Delay(1000))
//.animate(R.anim.abc_fade_in) // also solves the problem
.into(image);
}
});

By removing all the delaying parts, the end result is better, but the now the thumbnail is messed up: