autojs悬浮窗模拟toast气泡, 放到屏幕底部居中

牙叔教程 简略易懂

作用

autojs悬浮窗模拟toast气泡, 放到屏幕底部居中

这个蓝色的气泡实际上是一个悬浮窗, 他的位置在屏幕底部;

这个是小米MIUI, 底部有三大金刚(最近, 桌面, 返回),悬浮窗的位置在三大金手机号最旺财的尾数刚的上层

初始化sdk什么意思什么不直接用toast呢?

由于toast在autojs的界面上可以显现, 在非auotjs界面他就显现不了了手机号最旺财的尾数, 至少我的手机是这样的;

而悬浮窗根本可初始化英文以显现在任何界面之上, 所以就用悬浮窗模拟一下toast

目标

悬浮窗模手机淘宝拟的toast放到屏幕底部居中

接口

既然是模拟toas教程之家t, 那么接口就应该也相似toast, 因而, 咱们的调用方式大概是这样的

let floatyToast = require("./floatyToast.js");
floatyToast.toast("牙叔教程");

悬浮窗动作划分

  • 初始化悬浮窗
  • 显现悬浮窗
  • 躲藏悬浮窗
  • 计时(由于toast默许2秒)
  • 修正文接口英文

初始化悬浮窗

这里手机号查快递主要教程的意思分两个过程

  • 调整气泡款式初始化电脑时出现问题
  • 透明度

调整气泡款式

基础款式: 字体大小, 字体色彩, 内边距

let w = floaty.rawWindow(<text textSize="30sp" w="wrap_content" h="wrap_content" textColor="#ffffff" padding="6"></text>);

圆角款式, 圆接口角矩形气泡

setBackgroundRoundRounded(w.content, colors.parseColor("#3f51b5"));
function setBackgroundRoundRounded(view, color) {
    let gradientDrawable = new GradientDrawable();
    gradientDrawable.setShape(GradientDrawable.RECTANGLE);
    gradientDrawable.setColor(color);
    gradientDrawable.setCornerRadius(60);
    view.setBackgroundDrawable(gradientDrawable);
}

透明度

一开端, 用户必定没有调初始化sdk什么意思用气泡, 因而他不应该被用户看见,

咱们加个透明度, 用户就看不见啦

let w = floaty.rawWindow(<text alpha="0"></text>);

显现悬浮窗

首要,气泡要显现github官网登陆入口文字, 第一步就是修正文字内容

w.content.setText(msg);

修正文字内容之后,初始化失败是怎么解决 悬浮窗的宽高会发生变化, 由于宽高是随文字内容而定的

let w = floaty.rawWindow(<text w="wrap_content" h="wrap_content" ></text>);

既然一会要居中, 咱们就要核算一下, 悬浮窗的左上角的坐标,

这个需求考虑设备的宽高和悬浮窗的宽高

let ww = w.getWidth();
let wh = w.getHeight();
let dw = device.width;
let dh = device.height;
// 悬浮窗置于底部中心
let x = (dw - ww) / 2;
let y = dh - wh;
w.setPosition(x, y);

修正文字之后, 悬浮窗的宽高纷歧定会立马改变, 追求稳妥的话, 可以延迟200ms再获初始化失败是怎么解决取悬浮初始化窗的宽高

ui.post(function () {
    ...
}, 200);

最终, 咱们要把透明度改成1,教程的意思 悬浮窗就接口crc错误计数能看见啦

w.content.attr("alpha", 1);

躲藏悬浮窗

悬浮窗躲藏, 有两种方法,

  • 手机号查快递动到屏幕之外
  • 修正透明度

两种都可以使用, 咱们随意选一种, 比方移动到屏幕之外

w.setPosition(-66666, -66666);

计时(由于toast教程拼音默许2秒)

计时教程, 这个动作应该从气泡刚显现就开端计时,

一起, 考虑到或许气泡上的文字, 有或许频频变化, 比方200ms就变一次文字,初始化电脑的后果

文字变化之后, 咱们应该从头计时

const SHOW_DURATION = 2000;
let floatyToastTimer = null;
function floatyToast(msg) {
    if (floatyToastTimer) {
        clearTimeout(floatyToastTimer);
    }
    ui.run(function () {
        w.content.setText(msg);
    });
    floatyToastTimer = setTimeout(() => {
        hide();
    }, SHOW_DURATION);
}

修正文字

w.content.setText("牙叔教程");

环境

手机:小米11pr初始化游戏启动器失败o
MIUI: 13.0.12
Android版别: 12
Autojs版别:GitHub 9.1.22

名人名言

思路是最重要的, 其他的百度, bing, stackoverflow, github, 安卓文档, autojs文档, 最终才是接口是什么群里问问 — 牙叔教程

声明

部分内容来自网络 本教程仅用于学习, 禁止用于其他用途

微信公众号手机管家 牙叔教程

发表回复

提供最优质的资源集合

立即查看 了解详情