The given solution recommends defining path data in a TPathData and then flood filling the path with TCanvas.FillPath. TPathData is pretty useful as you can use it to draw all kinds of custom shapes in Firemonkey with it as well.
The solution basically says that you can draw with the native device resolution by inverting the scaling with TCanvas.SetMatrix like this:
Canvas.SetMatrix(TMatrix.CreateScaling(1/ Canvas.Scale,1/ Canvas.Scale)* Canvas.Matrix)
The recommended solution is to place the TImageView inside of a ScaledLayout and then use the Screen.Size property to scale the ScaledLayout component based on the screen size.
var screenSize: TSize; begin screenSize := Screen.Size; ScaledLayout1.Scale.X := screenSize.cx / ScaledLayout1.OriginalWidth; ScaledLayout1.Scale.Y := screenSize.cy / ScaledLayout1.OriginalHeight;
The code from these tips should work cross platform on all Firemonkey supported platforms which are Android, IOS, Windows, and OSX.