You mentioned "without using XAML" I understand then that you are using C# (code behind) to load and present your images.
The easiest way to make some overlapping on the images is by making all your images children of a StackLayout
and setting a negative spacing in the StackLayout
.

private void LoadSomeImages()
{
stackImages.Children.Clear();
stackImages.Spacing = -25;
stackImages.Orientation = StackOrientation.Horizontal;
for (int i = 0; i < 4; i++)
{
var image = new Image
{
WidthRequest = 60,
HeightRequest = 59
};
image.Source = ImageSource.FromResource("SWOverlappedImages.reactivex.png");
stackImages.Children.Add(image);
}
}
Being
stackImages
the StackLayout
that will be holding the Images.
reactivex.png
the image name in your resources.
The negative Spacing
will tell how much overlapping you desire. Also, keep in mind that Spacing
and the Image
Width
are highly related.
In the example above by setting the Spacing on -25, I am overlapping almost half of the Image.
Also, the above will work fine if all the images share the same size, or at least the same Width
.