
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key}) : super(key: key);
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
var _starX = 0.0;
@override
Widget build(BuildContext context) {
Gradient gradient = LinearGradient(colors: [
Colors.red,
Colors.green,
]);
// 根據漸變創建shader
// 范圍是從左上角(0,0),到右下角(size.width,size.height)全螢屏范圍
Shader shader = gradient.createShader(
Rect.fromLTWH(_starX, 0, 10, 30),
);
return Scaffold(
appBar: AppBar(
title: Text("歌詞demo"),
actions: [
FlatButton(
onPressed: () {
_starPlay();
},
child: Text("開始"))
],
),
body: Center(
child: Text(
"創建線性漸變,藍色強調色到綠色強調色的漸變",
style: TextStyle(
fontSize: 18.0,
// color: Colors.red,
// 創建一個新的Paint并指定shader
// 注意這里能復用的話還是不要動態創建了
foreground: Paint()..shader = shader,
),
),
),
);
}
_starPlay() {
_starX = _starX + 5;
if (_starX >= MediaQuery.of(context).size.width) {
_starX = 0;
}
setState(() {});
Future.delayed(Duration(milliseconds: 100)).then((value) {
_starPlay();
});
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/205357.html
標籤:其他
