dot_matrix_widget 0.1.1
dot_matrix_widget: ^0.1.1 copied to clipboard
Render any widget as a customizable dot-matrix display in Flutter.
dot_matrix_widget #
Render any Flutter widget as a dot-matrix (LED/LCD) display. The package captures its child and redraws it using configurable dot shapes, spacing, and color treatments to produce a retro display effect.
Features #
- Configurable dot size, spacing, and board alignment
- Built-in dot shapes: circle, square, diamond, rounded square (and extendable via
DotShape) - Flexible color pipeline: preserve original pixels, use a single color, or choose from preset styles like analog TV, LED panel, and vintage amber
- Adjustable alpha threshold to control lit/unlit dots
- Capture throttling with
captureIntervalfor smoother performance on animated content - Example app with live preview, gallery, and interactive controls
Installation #
Add the dependency to your pubspec.yaml:
dependencies:
dot_matrix_widget: ^0.1.1
Then run:
flutter pub get
Quick Start #
import 'package:dot_matrix_widget/dot_matrix_widget.dart';
import 'package:flutter/material.dart';
class DotMatrixPreview extends StatelessWidget {
const DotMatrixPreview({super.key});
@override
Widget build(BuildContext context) {
return DotMatrixWidget(
dotSize: 5,
spacing: 2,
shape: DotShapeType.circle,
colorMode: DotColorMode.preset,
stylePreset: DotMatrixStylePreset.analogTv(),
captureInterval: const Duration(milliseconds: 50),
child: Container(
color: Colors.black,
alignment: Alignment.center,
child: const Text(
'HELLO',
style: TextStyle(fontSize: 72, color: Colors.cyanAccent),
),
),
);
}
}
API Overview #
DotMatrixWidget exposes the following configuration points:
dotSize(double): Diameter or edge length of each rendered dot.spacing(double): Gap between dots.shape(DotShapeType): Choose the built-in shape, or convert to a customDotShape.colorMode(DotColorMode): Select original pixels, a single color, or a preset style.singleColor(Color?): Color override when usingDotColorMode.singleColor.stylePreset(DotMatrixStylePreset?): Curated color transforms likeanalogTv,ledPanel, orvintageAmber.blankColor(Color): Fill color for unlit dots and canvas background.alphaThreshold(int): Minimum alpha (0–255) required for a dot to be lit.pixelRatio(double?): Override device pixel ratio for the capture pass.captureInterval(Duration?): Minimum delay between captures; set toDuration.zeroto capture every frame.overlayVisible(bool): Toggle between showing the dot overlay or only updating capture data.
Example App #
The example/ directory includes a fully interactive demo with live preview, gallery, and configuration controls.
flutter run example
Roadmap #
- Additional style presets and glow effects
- Custom shape editor utilities
- Performance profiling on lower-end devices
Contributing #
Contributions are welcome! Please file issues and open pull requests with clear descriptions and test coverage where applicable.
License #
Licensed under the MIT License. See LICENSE for full terms.
