牙叔教程 简单易学
使用场景
有界面, 有悬浮窗, 有脚本,
还不会交互, 就看这个
效果展示
流程图
autojs版本
8.7.7-0
get知识点
- 导入安卓类
- 停止其他脚本
- 设置状态栏颜色
- 获取状态栏高度
- viewpager的基本使用
- Switch的基本使用
- 本地存储的使用
- 无障碍权限判断
- 悬浮窗权限判断
- 输入框监听
- 打开无障碍界面
- 打开悬浮窗界面
- resume事件和exit事件的使用
- 界面生成左上角返回和右上角菜单
- 停止指定脚本引擎
- 格式化时间
- 按钮点击事件的封装
- 悬浮窗中使用控制台
- setOnTouchListener的使用
主要代码讲解
ui.文字内容.setText(文字内容读写.read()); ui.无障碍.checked = auto.service ? true : false; ui.悬浮窗.checked = floaty.checkPermission() ? true : false;
2. 退出时保存界面数据
events.on("exit", function () { 文字内容读写.write(ui.文字内容.text()); });
3. 设置输入框监听
ui.文字内容.addTextChangedListener({ afterTextChanged: function (s) { 文字内容读写.write(s.toString()); }, });
4. switch开关的使用
ui.无障碍.on("check", function (isChecked) { if (isChecked && auto.service == null) { toastLog("请开启无障碍权限"); app.startActivity({ action: "android.settings.ACCESSIBILITY_SETTINGS", //跳转无障碍intent }); return true; } else { auto.service && auto.service.disableSelf(); //关闭无障碍 } });
5. resume事件的使用
ui.emitter.on("resume", () => { if (auto.service == null) { ui.无障碍.checked = false; } else { ui.无障碍.checked = true; } if (floaty.checkPermission()) { ui.悬浮窗.checked = true; } else { ui.悬浮窗.checked = false; } });
6. 添加返回键和菜单键
actionBar.setDisplayHomeAsUpEnabled(true); ui.emitter.on("create_options_menu", (menu) => { menu.add("设置"); menu.add("关于"); });
7. 封装点击事件
function 给按钮添加点击事件并且一秒后才能点击(button, action) { button.click(function () { let _content = button.getText().toString(); button.setEnabled(false); button.setText("已点击"); action(); setTimeout(function () { button.setEnabled(true); button.setText(_content); }, 1000); }); }
8. 悬浮窗设置控制台
// 设置控制台 悬浮窗.console.setConsole(runtime.console); // 隐藏输入框 悬浮窗.console.setInputEnabled(false);
9. 隐藏悬浮窗
悬浮窗.min.click(function () { toastLog("最小化悬浮窗"); 隐藏之前的悬浮窗坐标 = [悬浮窗.getX(), 悬浮窗.getY()]; 悬浮窗.setPosition(-3000, -3000); let w = 最小化悬浮窗.getWidth(); let h = 最小化悬浮窗.getHeight(); 最小化悬浮窗.setPosition(-(w / 4) * 1, device.height / 2 - h / 2); });
声明
部分内容来自网络