【发布时间】:2020-11-23 18:24:30
【问题描述】:
flutter 可以改变屏幕的亮度吗?我发现 ThemeData 中的 Brightness 只有两个值:亮和暗。如何在应用中将屏幕亮度从 1 调整为 10?
【问题讨论】:
-
嗨,你可能想看看这个:github.com/clovisnicolas/flutter_screen
标签: flutter
flutter 可以改变屏幕的亮度吗?我发现 ThemeData 中的 Brightness 只有两个值:亮和暗。如何在应用中将屏幕亮度从 1 调整为 10?
【问题讨论】:
标签: flutter
是的 Flutter 可以,可以使用 screen 插件: Screen plugin
这是一个如何实现它的示例,您只需将_brightness 设置为您想要的起始值并使用滑块更改它:
import 'package:flutter/material.dart';
import 'package:screen/screen.dart';
void main() => runApp(new MyApp());
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => new _MyAppState();
}
class _MyAppState extends State<MyApp> {
bool _isKeptOn = false;
double _brightness = 1.0;
@override
initState() {
super.initState();
initPlatformState();
}
initPlatformState() async {
bool keptOn = await Screen.isKeptOn;
double brightness = await Screen.brightness;
setState((){
_isKeptOn = keptOn;
_brightness = brightness;
});
}
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: new Scaffold(
appBar: new AppBar(title: new Text('Screen plugin example')),
body: new Center(
child: new Column(
children: <Widget>[
new Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new Text("Screen is kept on ? "),
new Checkbox(value: _isKeptOn, onChanged: (bool b){
Screen.keepOn(b);
setState((){_isKeptOn = b; });
})
]
),
new Text("Brightness :"),
new Slider(value : _brightness, onChanged : (double b){
setState((){
_brightness = b;
});
Screen.setBrightness(b);
})
]
)
),
),
);
}
}
如果您需要更多解释,请告诉我。此解决方案仅适用于 Android 和 iOS,不适用于台式机。
【讨论】: