O Extrato de Color é um pacote de vibração que permite extrair e calcular cores dos widgets do seu aplicativo. Você pode usá -lo para alterar a cor de um widget, dependendo/baseado na cor do plano de fundo (o outro widget atrás).
(O player de vídeo pode não ser exibido no pub.dev, check github.com)
Nesta demonstração, veja como você pode fazer seu widget mudar de cor como um camaleão?
Adicione o seguinte ao seu pubspec.yaml :
dependencies :
color_extract : ^1.0.1 Em seguida, corra flutter pub get .
O ColorExtractor É o widget da qual queremos extrair a cor média. Ele serve como um invólucro para o REPANTILIGADO, para que você possa utilizar o REPANTILY como uma alternativa.
ColorExtractor (
boundaryKey : GlobalKey (),
child : Container (
width : 200 ,
height : 200 ,
color : Colors .red,
),
); O widget ColorAverager calcula a cor média de uma porção específica de ColorExtractor ou RepaintBoundary . Seu aplicativo é útil para determinar a cor dominante de uma determinada área, como o fundo por trás de um logotipo, imagem.
ColorAverager (
boundaryKey : GlobalKey (),
child : SizedBox (
width : 50 ,
height : 50 ,
),
onChanged : (color) {
// Handle the new average color.
},
); Você também pode usar o ColorAveragerController para calcular a cor média programaticamente.
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á disponível sob a licença do MIT. Consulte o arquivo de licença para obter mais informações.