Here are three different graphics question and answer tips from the Firemonkey section on StackOverflow:
#1: How do I flood fill a TCanvas with Firemonkey?
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.
#2: How can I access every pixel on a mobile define screen when all the resolutions are different?
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)
#3: How can I display an image full screen with TImageView on mobile devices without distortion?
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.