教你制作Autojs自定义精美悬浮窗 (附完整实例代码)

由日赚3万网autojs开发交流群整理提供,欢迎大家一起技术交流,学习更多开发破解技术: 一键加群。如有侵权,请联系我删除!

我们在开发Autojs脚本时,需要使用到悬浮窗功能来控制脚本。那么到底要如何来做呢?今天给大家分享一些,先来看看效果:

教你制作Autojs自定义精美悬浮窗 (附完整实例代码)

附上完整代码:

var storage = storages.create("日赚3万_短视频合集"); //创建本地储存
var douyinTask=require("抖音极速版.js");
var img_url = "file://res/222.png"

悬浮窗();

function 悬浮窗() {
    window = floaty.rawWindow(
        <horizontal gravity="center_vertical">
            <img id="图标" src="{{img_url}}" w="60" h="60" alpha="0.8" circle="true" borderWidth="1dp" borderColor="black" />
            <horizontal id="抽屉">
                <vertical>
                    <button id="ui_运行" textColor="#FFFFFF" text="开始" bg="#4F4F4F" padding="0" h="40" w="60"/>
                    <text text="" h="1" />
                    <button id="ui_关闭" textColor="#FFFFFF" text="结束" bg="#4F4F4F" padding="0" h="40" w="60"/>
                </vertical>
            </horizontal>
        </horizontal>
    );
    window.setPosition(50, device.height / 3);
    window.exitOnClose();
    setInterval(() => {}, 1000);

    window.抽屉.visibility = 8;

    状态 = false;
    var execution = null;
    var x = 0,
        y = 0;
    var windowX, windowY;
    var downTime;

    window.图标.setOnTouchListener(function(view, event) {
        switch (event.getAction()) {
            case event.ACTION_DOWN:
                x = event.getRawX();
                y = event.getRawY();
                windowX = window.getX();
                windowY = window.getY();
                downTime = new Date().getTime();
                return true;
            case event.ACTION_MOVE:
                window.setPosition(50, device.height / 3);
                return true;
            case event.ACTION_UP:
                if (Math.abs(event.getRawY() - y) < 5 && Math.abs(event.getRawX() - x) < 5) {
                    抽屉状态();
                }
                return true;
        }
        return true;
    });

    function 抽屉状态() {
        if (window.抽屉.visibility == 8) {
            window.抽屉.visibility = 0;
        } else {
            window.抽屉.visibility = 8;
        }
    }

    window.ui_关闭.setOnTouchListener(function(view, event) {
        if (event.getAction() == event.ACTION_UP) {
            toastLog("关闭脚本...");
            window.close();
            exit();
        }
        return true;
    });

    //运行按钮事件
    window.ui_运行.setOnTouchListener(function(view, event) {
        if (event.getAction() == event.ACTION_UP) {
            window.setPosition(50, device.height / 3);
            window.disableFocus();
            if (window.ui_运行.text() == "开始") {
                window.ui_运行.text("暂停");
                console.log("开始运行悬浮窗");

                var main = threads.start(function() {
                    device.keepScreenOn()
                    //运行脚本
                    douyinTask.runDouYinTask();
                })

                //两秒不点击暂停,则隐藏抽屉
                setTimeout(function() {
                    if (window.ui_运行.text() == "暂停") {
                        抽屉状态()
                    }
                }, 3000)

                //监控运行还是暂停
                var 监控状态 = setInterval(function() {
                    if (window.ui_运行.text() == "开始") { //是运行说明暂停了
                        main.interrupt()
                        toastLog("暂停了")
                        clearInterval(监控状态)
                    }
                }, 100)

            } else {
                状态 = false;
                window.ui_运行.text("开始");
                toastLog("开始暂停...");
            }
        }
        return true;
    });
}
上一篇:2021-10-31


下一篇:微信小程序项目目录