MagnifyingGlass Flutter plugin
Flutter real-time magnifying glass lens widget with Barrel/Pincushion distortion. Works on Android, iOS and desktop. Doesn't work yet on web (help needed with web FFI).
Getting Started
Make MagnifyingGlass widget as the parent of the widget you wish to be used (usually MyHomePage).
@override
Widget build(BuildContext context) {
MagnifyingGlassController magnifyingGlassController = MagnifyingGlassController();
return MagnifyingGlass(
controller: magnifyingGlassController,
glassPosition: GlassPosition.touchPosition,
borderThickness: 8.0,
borderColor: Colors.grey,
glassParams: GlassParams(
startingPosition: Offset(150, 150),
diameter: 150,
distortion: 1.0,
magnification: 1.2,
padding: EdgeInsets.all(10),
),
child: Scaffold(
body: ...,
floatingActionButton: FloatingActionButton(
onPressed: () => magnifyingGlassController.openGlass(),
child: const Icon(Icons.search),
),
)
);
MagnifyingGlass properties
Name | Type | Description |
---|---|---|
controller | MagnifyingGlassController | Let you control the glass state and parameters: openGlass() closeGlass() setDistortion( double distortion, double magnification ) setDiameter( int diameter ) |
glassPosition | enum | enum to set the touch behavior or sticky position |
glassParams | GlassParams | class to set lens parameters |
borderColor | Color | border color |
borderThickness | double | border thickness |
GlassPosition class
Name | Description |
---|---|
touchPosition | move the glass with finger touch |
topLeft | sticky position to top left corner of the screen |
topRight | sticky position to top rigth corner of the screen |
bottomLeft | sticky position to bottom left corner of the screen |
bottomRight | sticky position to bottom right corner of the screen |
GlassParams class
Name | Description |
---|---|
startingPosition | the startin glass position. If not given the lens will be placed at the center of the screen. |
diameter | the diameter of the glass |
magnification | the magnification of the lens 1 means no magnification >1 means magnification <1 means shrinking |
distortion | Barrel/Pincushion distortion power 0 means no distortion |
padding | the padding surrounding the glass to enlarge touching area |
distorsion 0.5 mag 1.0 |
distorsion 0.5 mag 1.4 |
distorsion 2.0 mag 1.7 |