Flutter set android wallpaper

install

dependencies:
  wallpaper: ^0.0.8

android/gradle.properties

org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true

example

import 'package:flutter/material.dart';
import 'package:wallpaper/wallpaper.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HomePage(),
    );
  }
}

class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  /// 主屏幕
  String homeScreen = 'https://s2.ax1x.com/2019/07/02/ZJHWLt.jpg';

  /// 锁屏
  String lockScreen = 'https://s2.ax1x.com/2019/07/02/ZJHheP.jpg';

  /// 都
  String both = 'https://s2.ax1x.com/2019/07/02/ZJHRsI.jpg';
  bool loading = false;
  var result = "Waiting to set wallpaper";

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
          child: Container(
        width: 300.0,
        height: 600.0,
        child: Column(
          children: <Widget>[
            Padding(
              padding: EdgeInsets.all(10),
              child: RaisedButton(
                color: Colors.black,
                child: Text(
                  "Home Screen",
                  style: TextStyle(color: Colors.white, fontSize: 20),
                ),
                onPressed: () async {
                  setState(() {
                    loading = true;
                  });
                  String res;
                  res = await Wallpaper.homeScreen(homeScreen);
                  if (!mounted) return;
                  setState(() {
                    loading = false;
                    result = res.toString();
                  });
                },
              ),
            ),
            Padding(
                padding: EdgeInsets.all(10),
                child: RaisedButton(
                  color: Colors.black,
                  child: Text(
                    "Lock Screen",
                    style: TextStyle(color: Colors.white, fontSize: 20),
                  ),
                  onPressed: () async {
                    setState(() {
                      loading = true;
                    });
                    String res;
                    res = await Wallpaper.lockScreen(lockScreen);
                    if (!mounted) return;
                    setState(() {
                      loading = false;
                      result = res.toString();
                    });
                  },
                )),
            Padding(
                padding: EdgeInsets.all(10),
                child: RaisedButton(
                  color: Colors.black,
                  child: Text(
                    "Both",
                    style: TextStyle(color: Colors.white, fontSize: 20),
                  ),
                  onPressed: () async {
                    setState(() {
                      loading = true;
                    });
                    String res;
                    res = await Wallpaper.bothScreen(both);
                    if (!mounted) return;
                    print(res);
                    setState(() {
                      loading = false;
                      result = res;
                    });
                  },
                )),
            Padding(
              padding: EdgeInsets.all(10),
              child: loading
                  ? CircularProgressIndicator()
                  : Text(result.toString()),
            )
          ],
        ),
      )),
    );
  }
}

Guess you like

Origin www.cnblogs.com/ajanuw/p/11345527.html