B2B网络软件
标题:
安卓脚本秒吐司快速显示和关闭的UI提示窗口
[打印本页]
作者:
YYPOST群发软件
时间:
7 小时前
标题:
安卓脚本秒吐司快速显示和关闭的UI提示窗口
安卓脚本秒吐司快速显示和关闭的UI提示窗口
2.png
(688.07 KB, 下载次数: 0)
下载附件
7 小时前
上传
3.png
(779.85 KB, 下载次数: 0)
下载附件
7 小时前
上传
/**
* ============================================
* 平台: Android (AIWROK)
* 🍎交流QQ群:711841924(群)
*🍎交流QQ群:528816639 (安卓内测群)
* ============================================
*/
// 导入包
importClass(Packages.android.os.Handler);
importClass(Packages.android.os.Looper);
/**
* 秒吐司 - 快速显示和关闭的UI提示窗口(使用floatUI,最上层显示)
* @param {string} message - 提示信息
* @param {number} duration - 显示时长(毫秒),默认3000ms
*/
function showQuickToast(message, duration) {
duration = duration || 3000;
try {
// 创建 floatUI 实例
var fui = new floatUI();
// 加载简单的文本布局(红色大字,蓝色背景)
fui.loadXML(
'<TextView xmlns:android="http://schemas.android.com/apk/res/android" ' +
'android:id="toastText" ' +
'android:layout_width="wrap_content" ' +
'android:layout_height="wrap_content" ' +
'android:text="' + message + '" ' +
'android:textColor="#FF0000" ' +
'android:textSize="20sp" ' +
'android:textStyle="bold" ' +
'android:background="#EE4A90E2" ' +
'android:padding="20dp" ' +
'android:gravity="center" />'
);
// 获取屏幕尺寸
var screenWidth = screen.getScreenWidth();
var screenHeight = screen.getScreenHeight();
// 设置位置(屏幕上方居中)
setTimeout(function() {
fui.setPosition((screenWidth - 300) / 2, screenHeight / 3);
// 设置为最上层窗口类型
try {
var window = fui.getWindow();
if (window) {
var params = window.getAttributes();
// TYPE_APPLICATION_OVERLAY - Android 8.0+
// TYPE_SYSTEM_ALERT - Android 8.0以下
params.type = android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
// 或者使用更高的层级
// params.type = 2038; // TYPE_APPLICATION_OVERLAY 的值
window.setAttributes(params);
}
} catch (e) {
// 如果设置失败,忽略错误
}
}, 50);
// 自动关闭
setTimeout(function() {
try {
fui.close();
} catch (e) {
// 忽略关闭错误
}
}, duration);
} catch (e) {
printl("❌ 秒吐司显示失败: " + e.message);
// 降级方案:直接打印
printl("[提示] " + message);
}
}
/**
* 在指定位置显示秒吐司(最上层浮动窗)
* @param {string} message - 提示信息
* @param {string} position - 位置:'top'(上), 'bottom'(下), 'left'(左), 'right'(右)
* @param {number} duration - 显示时长(毫秒)
*/
function showQuickToastAt(message, position, duration) {
duration = duration || 3000;
try {
var fui = new floatUI();
fui.loadXML(
'<TextView xmlns:android="http://schemas.android.com/apk/res/android" ' +
'android:id="toastText" ' +
'android:layout_width="wrap_content" ' +
'android:layout_height="wrap_content" ' +
'android:text="' + message + '" ' +
'android:textColor="#FF0000" ' +
'android:textSize="20sp" ' +
'android:textStyle="bold" ' +
'android:background="#EE4A90E2" ' +
'android:padding="20dp" ' +
'android:gravity="center" />'
);
var screenWidth = screen.getScreenWidth();
var screenHeight = screen.getScreenHeight();
var x, y;
// 根据位置设置坐标
switch(position) {
case 'top':
x = (screenWidth - 300) / 2;
y = screenHeight / 4;
break;
case 'bottom':
x = (screenWidth - 300) / 2;
y = screenHeight * 3 / 4;
break;
case 'left':
x = screenWidth / 4;
y = (screenHeight - 100) / 2;
break;
case 'right':
x = screenWidth * 3 / 4;
y = (screenHeight - 100) / 2;
break;
default:
x = (screenWidth - 300) / 2;
y = screenHeight / 3;
}
setTimeout(function() {
fui.setPosition(x, y);
// 设置为最上层窗口类型
try {
var window = fui.getWindow();
if (window) {
var params = window.getAttributes();
params.type = android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
window.setAttributes(params);
}
} catch (e) {
// 如果设置失败,忽略错误
}
}, 50);
setTimeout(function() {
try {
fui.close();
} catch (e) {
// 忽略关闭错误
}
}, duration);
} catch (e) {
printl("❌ 秒吐司显示失败: " + e.message);
printl("[提示] " + message);
}
}
/**
* 测试秒吐司功能
*/
function testQuickToast() {
printl("=== 测试秒吐司功能 ===");
// 测试1:基本显示
showQuickToast("这是秒吐司消息");
sleep.millisecond(1200);
// 测试2:短时间显示
showQuickToast("短消息", 600);
sleep.millisecond(1000);
// 测试3:连续显示
showQuickToast("第一条");
sleep.millisecond(300);
showQuickToast("第二条覆盖第一条");
sleep.millisecond(1200);
printl("=== 测试完成 ===");
}
/**
* 主函数 - 测试秒吐司功能
*/
function main() {
printl("=== 秒吐司功能演示 ===");
var message = "技术交流QQ群711841924群一,苹果内测群,528816639";
// 演示1:上方显示(3秒)
printl("1. 上方显示");
showQuickToastAt(message, 'top', 3000);
sleep.millisecond(3500);
// 演示2:下方显示(3秒)
printl("2. 下方显示");
showQuickToastAt(message, 'bottom', 3000);
sleep.millisecond(3500);
// 演示3:左侧显示(3秒)
printl("3. 左侧显示");
showQuickToastAt(message, 'left', 3000);
sleep.millisecond(3500);
// 演示4:右侧显示(3秒)
printl("4. 右侧显示");
showQuickToastAt(message, 'right', 3000);
sleep.millisecond(3500);
printl("=== 演示完成 ===");
printl("\n使用方法:");
printl(" showQuickToast('消息'); // 默认3秒,上方显示");
printl(" showQuickToastAt('消息', 'top', 3000); // 上方显示");
printl(" showQuickToastAt('消息', 'bottom', 3000); // 下方显示");
printl(" showQuickToastAt('消息', 'left', 3000); // 左侧显示");
printl(" showQuickToastAt('消息', 'right', 3000); // 右侧显示");
}
// 执行主函数
main();
复制代码
欢迎光临 B2B网络软件 (http://bbs.niubt.cn/)
Powered by Discuz! X3.2