主页 > 网络教程 > Autojs进阶 > 更改气泡信息Toast时长和位置

推荐服务

Autojs免Root脚本定制服务

Autojs免Root脚本定制服务

编号: S84   浏览: 6152

Autojs尊享学员培训服务

Autojs尊享学员培训服务

编号: S83   浏览: 2911

推荐工具

织梦dedeCMS评论插件免费修复版

织梦dedeCMS评论插件免费修复版

编号: S2   浏览: 2983

千若微信养号辅助工具

千若微信养号辅助工具

编号: S1   浏览: 2788

更改气泡信息Toast时长和位置

浏览: 次     责任编辑: Dawolf

更改toast和toastLog函数的主要目的是防止toast信息堆溢,autojs的气泡命令已经执行完毕,但是安卓的气泡信息还在依次显示,造成视觉上的错误,安卓自带toast显示时间为2秒或3.5秒,如果用于autojs的倒计时操作,每一秒计时一次,便会出现autojs已经执行完倒计时进入下一步,但是安卓手机依然在显示倒计时信息...等等情况,故而需要更改toast的时间,此方法相当于替换autojs自带的toast函数!


toast信息较多时不建议使用,否则会导致多线程过多,以至于内存泄漏,严重会导致手机卡死!

for (i = 300; i >= 1; i--) {
    toast("启动等待倒计时" + i + "秒");
    sleep(1000);
}//测试


//**************************************************************************************
//系统自带法更改,优点:无需特殊权限,系统自带功能整合,提示信息中可不带软件名字
//toast函数更改开始
function toast(msg0, msg1, msg2, msg3, msg4, msg5) {//6个变量应该足够输出了,如果不够,后面可以继续加变量
    var ttoast = threads.start(function () {
        importClass(android.widget.Toast);
        importClass(android.view.Gravity);
        var msg = "";
        var msgi = 0;
        while (true) {
            if (eval("msg" + msgi) == undefined) {
                break;
            } else {
                msg = msg + " " + eval("msg" + msgi)
                msgi++
            }
        }
        var mytoast = Toast.makeText(context, msg, Toast.LENGTH_SHORT);
        mytoast.setGravity(Gravity.TOP, 0, device.height * 0.1);//可自主调节位置
        mytoast.show();
        setTimeout(() => {
            mytoast.cancel();
        }, 1000);//可自主调节时间,大于LENGTH_SHORT无效
    });
    setTimeout(() => {
        ttoast.interrupt();
    }, 1);//定时关闭子线程,否则容易造成内存溢出
}

//toastLog函数更改开始
function toastLog(msg0, msg1, msg2, msg3, msg4, msg5) {//6个变量应该足够输出了,如果不够,后面可以继续加变量
    var ttoast = threads.start(function () {
        importClass(android.widget.Toast);
        importClass(android.view.Gravity);
        var msg = "";
        var msgi = 0;
        while (true) {
            if (eval("msg" + msgi) == undefined) {
                break;
            } else {
                msg = msg + " " + eval("msg" + msgi)
                msgi++
            }
        }
        var mytoast = Toast.makeText(context, msg, Toast.LENGTH_SHORT);
        mytoast.setGravity(Gravity.TOP, 0, device.height * 0.1);//可自主调节位置
        mytoast.show();
        setTimeout(() => {
            mytoast.cancel();
        }, 1000);//可自主调节时间,大于LENGTH_SHORT无效
        log(msg);
    });
    setTimeout(() => {
        ttoast.interrupt();
    }, 1);//定时关闭子线程,否则容易造成内存溢出
}


//*****************************************************************************************
//悬浮窗法更改,优点:提示信息中可不带软件名字 缺点:需要开启现在在应用上层以及悬浮窗权限
//toast函数更改开始
function toast(msg0, msg1, msg2, msg3, msg4, msg5, msg6) {//7个变量应该足够输出了,如果不够,后面可以继续加变量
    threads.start(function () {
        var toastinfo = floaty.rawWindow(
            <frame id="toastframe" gravity="center" margin="10 0" bg="#cc000000" visibility="gone">
                <text id="toastmsg" textColor="#ffffff" gravity="center" />
            </frame>
        );
        toastinfo.setPosition(0, device.height * 0.1);//Y必须与上方一致
        toastinfo.setSize(device.width, 120);
        toastinfo.setTouchable(false);
        threads.start(function () {//由于aj默认从左上方开始显示悬浮窗,信息循环影响视觉感受,改为到达中间再显示出来
            while (true) {
                if (toastinfo.getY() == device.height * 0.1) {//Y必须与下方一致
                    toastinfo.toastframe.visibility = 0;
                    break;
                }
            }
        });
        setTimeout(() => {
            toastinfo.close();
        }, 1000);
        var msg = "";
        var msgi = 0;
        while (true) {
            if (eval("msg" + msgi) == undefined) {
                break;
            } else {
                msg = msg + " " + eval("msg" + msgi)
                msgi++
            }
        }
        toastinfo.toastmsg.setText(msg);
    });
}

//toastLog函数更改开始
function toastLog(msg0, msg1, msg2, msg3, msg4, msg5, msg6) {//7个变量应该足够输出了,如果不够,后面可以继续加变量
    threads.start(function () {
        var toastLoginfo = floaty.rawWindow(
            <frame id="toastframe" gravity="center" margin="10 0" bg="#cc000000" visibility="gone">
                <text id="toastLogmsg" textColor="#ffffff" gravity="center" />
            </frame>
        );
        toastLoginfo.setPosition(0, device.height * 0.1);//Y必须与上方一致
        toastLoginfo.setSize(device.width, 120);
        toastLoginfo.setTouchable(false);
        threads.start(function () {//由于aj默认从左上方开始显示悬浮窗,信息循环影响视觉感受,改为到达中间再显示出来
            while (true) {
                if (toastLoginfo.getY() == device.height * 0.1) {//Y必须与下方一致
                    toastLoginfo.toastframe.visibility = 0;
                    break;
                }
            }
        });
        setTimeout(() => {
            toastLoginfo.close();
        }, 1000);
        var msg = "";
        var msgi = 0;
        while (true) {
            if (eval("msg" + msgi) == undefined) {
                break;
            } else {
                msg = msg + " " + eval("msg" + msgi)
                msgi++
            }
        }
        toastLoginfo.toastLogmsg.setText(msg);
        log(msg)
    });
}


版权保护: 本文由[ 千若网络 ]编辑,如需转载敬请保留本文链接: http://www.sss.top/jc/autojsjj/102.html