Canvas.DrawBitmap unexpected result(BUG or strange behaviour) Xamarin Android <p>So i have an problem with method of Canvas.<strong>DrawBitmap()</strong>, that draws unexpected result.<br> Lets see my example:<br> <strong>Source image</strong><br> <a href="https://i.stack.imgur.com/8M4kc.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/8M4kc.jpg" alt="image"></a> </p> <hr> <p>I have two cases(just for test): </p> <ol> <li>I want to <strong>draw</strong> Red rectangle from <strong>0,0</strong> and give for him size <strong>1/4</strong> of image,also i want to draw this bitmap in same size(1/4) and put to Bottom.Right place. </li> <li><strong>Draw</strong> again Red rectangle with same conditions(starts from <strong>Top.Left</strong>(0,0) and size 1/4 of image) and draw part of bitmap and shows as Rectangle with 1/4 size(<strong>Bottom.Right</strong>). </li> </ol> <h2>Case #1</h2> <p>i'm doing this: </p> <pre><code>//source imageview Source.SetImageResource(Resource.Drawable.lena30); //bitmap bt = ((BitmapDrawable)Source.Drawable).Bitmap.Copy(Bitmap.Config.Argb8888, true); //second imageview, where i fill result Draw.SetImageBitmap(bt); can = new Canvas(bt); Paint paint = new Paint(); paint.Color = Color.Red; paint.SetStyle(Paint.Style.Fill); //draw Red Rect with 1/4 size and locate Top.Left can.DrawRect(0,0,bt.Width/2,bt.Height/2,paint); //redraw new bitmap(all subset) and locate to Bottom.Right with 1/4 size can.DrawBitmap(bt, null, new Rect(bt.Width/2, bt.Height / 2, bt.Width, bt.Height), null); </code></pre> <p>and the result is :<br> <a href="https://i.stack.imgur.com/OhzR2.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/OhzR2.jpg" alt="result case1"></a></p> <hr> <h2>Case #2</h2> <p>same,but getting now part of bitmap(not full subset of bitmap): </p> <pre><code> //source imageview Source.SetImageResource(Resource.Drawable.lena30); //bitmap bt = ((BitmapDrawable)Source.Drawable).Bitmap.Copy(Bitmap.Config.Argb8888, true); //second imageview, where i fill result Draw.SetImageBitmap(bt); can = new Canvas(bt); Paint paint = new Paint(); paint.Color = Color.Red; paint.SetStyle(Paint.Style.Fill); //draw Red Rect with 1/4 size and locate Top.Left can.DrawRect(0,0,bt.Width/2,bt.Height/2,paint); //redraw new bitmap(not full,only part of Source Rectangle) and locate to Bottom.Right with 1/4 size can.DrawBitmap(bt, new Rect(bt.Width/2,0,bt.Width,bt.Height), new Rect(bt.Width/2, bt.Height / 2, bt.Width, bt.Height), null); </code></pre> <p><a href="https://i.stack.imgur.com/mlEy8.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/mlEy8.jpg" alt="result case2"></a> </p> <hr> <p>So i cant understand,why that happens?(Why image no scaling to fit size and duplicate <strong>Rectangles</strong>!?).<br> Any ideas? Thanks!</p>