RectanglePainterV2 class
A custom painter that draws a semi-transparent overlay with a centered rectangular cutout, typically used as a camera overlay to highlight the area for capturing ID cards or documents.
The RectanglePainterV2 class paints an overlay on the screen with a clear rectangle in the center,
allowing users to focus on the content within the rectangle (e.g., for taking ID card photos).
Customization:
topMargin: Adjust the vertical position of the rectangle.size: A callback function that takes the screen size as an input and returns a custom size for the rectangle. This allows developers to dynamically control the dimensions of the rectangle based on the screen or parent widget's size.strokeWidth: Customize the stroke thickness around the rectangle.strokeColor: Define the stroke color (default is white).overlayColor: Change the color and opacity of the overlay surrounding the rectangle.borderRadius: Add rounded corners to the rectangle.
Usage Example:
Here's how you can use the RectanglePainterV2 in a camera preview setup:
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text("Camera ID Card Page", style: TextStyle(color: Colors.black)),
),
body: Stack(
children: [
// Camera preview area
Container(
alignment: Alignment.center,
child: cameraController?.value.isInitialized == true
? CameraPreview(cameraController!)
: Container(),
),
// Overlay rectangle for ID card capture
IgnorePointer(
child: CustomPaint(
painter: RectanglePainterV2(),
child: Container(),
),
),
],
),
);
}
For more detailed examples, refer to the example.
This class is particularly useful in scenarios where users need guidance on framing specific regions, such as ID card or document scanning.
- Inheritance
-
- Object
- Listenable
- CustomPainter
- RectanglePainterV2
Constructors
Properties
- borderRadius ↔ Radius?
-
getter/setter pair
- hashCode → int
-
The hash code for this object.
no setterinherited
- overlayColor ↔ Color?
-
getter/setter pair
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- semanticsBuilder → SemanticsBuilderCallback?
-
Returns a function that builds semantic information for the picture drawn
by this painter.
no setterinherited
- size ↔ Size? Function(Size)?
-
getter/setter pair
- strokeColor ↔ Color
-
getter/setter pair
- strokeWidth ↔ double
-
getter/setter pair
- topMargin ↔ double?
-
getter/setter pair
Methods
-
addListener(
VoidCallback listener) → void -
Register a closure to be notified when it is time to repaint.
inherited
-
hitTest(
Offset position) → bool? -
Called whenever a hit test is being performed on an object that is using
this custom paint delegate.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
paint(
Canvas canvas, Size size) → void -
Called whenever the object needs to paint. The given Canvas has its
coordinate space configured such that the origin is at the top left of the
box. The area of the box is the size of the
sizeargument.override -
removeListener(
VoidCallback listener) → void -
Remove a previously registered closure from the list of closures that the
object notifies when it is time to repaint.
inherited
-
shouldRebuildSemantics(
covariant CustomPainter oldDelegate) → bool -
Called whenever a new instance of the custom painter delegate class is
provided to the RenderCustomPaint object, or any time that a new
CustomPaint object is created with a new instance of the custom painter
delegate class (which amounts to the same thing, because the latter is
implemented in terms of the former).
inherited
-
shouldRepaint(
covariant CustomPainter oldDelegate) → bool -
Called whenever a new instance of the custom painter delegate class is
provided to the RenderCustomPaint object, or any time that a new
CustomPaint object is created with a new instance of the custom painter
delegate class (which amounts to the same thing, because the latter is
implemented in terms of the former).
override
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited