Android Question XUI - B4XCanvas

LucaMs

Expert
Licensed User
Longtime User
It is set internally.

Are you sure? Is it set correctly?

upload_2018-3-4_10-37-32.png


On the left, the standard canvas, with anti aliasing.
On the right, XUICanvas (code snippet mentioned in the first post).
 
Upvote 0

Erel

B4X founder
Staff member
Licensed User
Longtime User
The issue with the bitmap drawing is not related to anti aliasing but rather to the way the bitmap is resized.

This code should provide better results:
B4X:
Sub CreateRoundBitmap (Input As B4XBitmap, Size As Int) As B4XBitmap
   If Input.Width <> Input.Height Then
       'if the image is not square then we crop it to be a square.
       Dim l As Int = Min(Input.Width, Input.Height)
       Input = Input.Crop(Input.Width / 2 - l / 2, Input.Height / 2 - l / 2, l, l)
   End If
   Dim c As B4XCanvas
   Dim xview As B4XView = xui.CreatePanel("")
   xview.SetLayoutAnimated(0, 0, 0, Size, Size)
   c.Initialize(xview)
   Dim path As B4XPath
   path.InitializeOval(c.TargetRect)
   c.ClipPath(path)
   c.DrawBitmap(Input.Resize(Size, Size, False), c.TargetRect)
   c.RemoveClip
   c.DrawCircle(c.TargetRect.CenterX, c.TargetRect.CenterY, c.TargetRect.Width / 2 - 2dip, xui.Color_White, False, 5dip) 'comment this line to remove the border
   c.Invalidate
   Dim res As B4XBitmap = c.CreateBitmap
   c.Release
   Return res
End Sub
 
Upvote 0
Top