Ekstrak warna adalah paket flutter yang memungkinkan Anda untuk mengekstrak dan menghitung warna dari widget aplikasi Anda. Anda dapat menggunakannya untuk mengubah warna widget tergantung/berdasarkan warna latar belakang (widget lain di belakang).
(Pemutar video tidak boleh ditampilkan di pub.dev, periksa github.com)
Dalam demo ini lihat bagaimana Anda dapat membuat widget Anda mengubah warna seperti bunglon?
Tambahkan yang berikut ke pubspec.yaml Anda:
dependencies :
color_extract : ^1.0.1 Kemudian jalankan flutter pub get .
ColorExtractor itu adalah widget yang ingin kami ekstrak dari warna rata -rata. Ini berfungsi sebagai pembungkus untuk ulang kembali, sehingga Anda dapat memanfaatkan ulang ulang sebagai alternatif.
ColorExtractor (
boundaryKey : GlobalKey (),
child : Container (
width : 200 ,
height : 200 ,
color : Colors .red,
),
); Widget ColorAverager menghitung warna rata -rata bagian spesifik dari ColorExtractor atau RepaintBoundary . Penerapannya berguna dalam menentukan warna dominan dari area tertentu, seperti latar belakang di balik logo, gambar.
ColorAverager (
boundaryKey : GlobalKey (),
child : SizedBox (
width : 50 ,
height : 50 ,
),
onChanged : (color) {
// Handle the new average color.
},
); Anda juga dapat menggunakan ColorAveragerController untuk menghitung warna rata -rata secara terprogram.
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 tersedia di bawah lisensi MIT. Lihat file lisensi untuk info lebih lanjut.