I'm trying to make a color picker bar and customizing I have encountered this problem (I'm learning with Xamarin). The problem is that I don't see how to make a touch pointer in front of the bar. Any idea? How to do it?
Original repo https://github.com/UdaraAlwis/XFColorPickerControl
// Painting the Touch point
using (SKPaint paintTouchPoint = new SKPaint())
{
paintTouchPoint.Style = SKPaintStyle.Fill;
paintTouchPoint.Color = SKColors.Black;
paintTouchPoint.IsAntialias = true;
var valueToCalcAgainst = (skCanvasWidth > skCanvasHeight) ? skCanvasWidth : skCanvasHeight;
var pointerCircleDiameterUnits = PointerCircleDiameterUnits+0.05; // 0.6 (Default)
pointerCircleDiameterUnits = (float)pointerCircleDiameterUnits / 10f; // calculate 1/10th of that value
var pointerCircleDiameter = (float)(valueToCalcAgainst * pointerCircleDiameterUnits);
// Outer circle of the Pointer (Ring)
skCanvas.DrawCircle(
_lastTouchPoint.X,
_lastTouchPoint.Y,
pointerCircleDiameter / 2, paintTouchPoint);
paintTouchPoint.Style = SKPaintStyle.Fill;
paintTouchPoint.Color = SKColors.White;
paintTouchPoint.IsAntialias = true;
valueToCalcAgainst = (skCanvasWidth > skCanvasHeight) ? skCanvasWidth : skCanvasHeight;
pointerCircleDiameterUnits = PointerCircleDiameterUnits; // 0.6 (Default)
pointerCircleDiameterUnits = (float)pointerCircleDiameterUnits / 10f; // calculate 1/10th of that value
pointerCircleDiameter = (float)(valueToCalcAgainst * pointerCircleDiameterUnits);
// Outer circle of the Pointer (Ring)
skCanvas.DrawCircle(
_lastTouchPoint.X,
_lastTouchPoint.Y,
pointerCircleDiameter / 2, paintTouchPoint);
// Draw another circle with picked color
paintTouchPoint.Color = touchPointColor;
var pointerCircleBorderWidthUnits = PointerCircleBorderUnits; // 0.3 (Default)
var pointerCircleBorderWidth = (float)pointerCircleDiameter *
(float)pointerCircleBorderWidthUnits; // Calculate against Pointer Circle
// Inner circle of the Pointer (Ring)
skCanvas.DrawCircle(
_lastTouchPoint.X,
_lastTouchPoint.Y,
((pointerCircleDiameter - pointerCircleBorderWidth) / 2), paintTouchPoint);
}