L'extrait de couleur est un package de flottement qui vous permet d'extraire et de calculer les couleurs à partir des widgets de votre application. Vous pouvez l'utiliser pour modifier la couleur d'un widget en fonction / en fonction de la couleur de l'arrière-plan (l'autre widget derrière).
(Le lecteur vidéo peut ne pas s'afficher sur pub.dev, vérifier github.com)
Dans cette démo, voyez comment vous pouvez faire changer les couleurs de votre widget comme un caméléon ?.
Ajoutez ce qui suit à votre pubspec.yaml :
dependencies :
color_extract : ^1.0.1 Ensuite, exécutez flutter pub get .
Le ColorExtractor c'est le widget dont nous voulons extraire la couleur moyenne. Il sert d'emballage pour Repainingboundary, vous pouvez donc utiliser une alternative repeinte comme alternative.
ColorExtractor (
boundaryKey : GlobalKey (),
child : Container (
width : 200 ,
height : 200 ,
color : Colors .red,
),
); Le widget ColorAverager calcule la couleur moyenne d'une partie spécifique de ColorExtractor ou RepaintBoundary . Son application est utile pour déterminer la couleur dominante d'une certaine zone, comme l'arrière-plan derrière un logo, l'image.
ColorAverager (
boundaryKey : GlobalKey (),
child : SizedBox (
width : 50 ,
height : 50 ,
),
onChanged : (color) {
// Handle the new average color.
},
); Vous pouvez également utiliser le ColorAveragerController pour calculer la couleur moyenne par programme.
final controller = ColorAveragerController ();
// ... render the widget ...
final avgColor = await controller. calculateAvgColor (); import 'package:flutter/material.dart' ;
import 'package:color_extract/color_extract.dart' ;
class MyHomePage extends StatelessWidget {
@override
Widget build ( BuildContext context) {
return Scaffold (
body : Stack (
children : [
ColorExtractor (
boundaryKey : boundaryKey,
child : Container (
width : 200 ,
height : 200 ,
color : Colors .blue,
),
),
ColorAverager (
// boundaryKey should be the same one in the above ColorExtractor boundaryKey
boundaryKey : boundaryKey,
// You can use the controller (ColorAveragerController) too.
// controller: controller,
child : const SizedBox (width : 50 , height : 50 ),
onChanged : (color) {
// Do something with the average color.
// color should be = Colors.blue
},
)
],
)
);
}
}itisnajim, [email protected]
Color_Extract est disponible sous la licence MIT. Voir le fichier de licence pour plus d'informations.