返回
用 autojs 悬浮窗打造气泡提示,告别 toast 局限
Android
2023-11-16 08:50:54
为何舍弃 Toast,转而使用悬浮窗?
Toast 是一种通常在屏幕顶部或底部短暂出现的轻量级通知。然而,它在 autojs 中有一个重大缺陷:它仅在 autojs 应用程序内或由 autojs 启动的应用程序内可靠地工作。
而悬浮窗,顾名思义,是一种可以悬停在屏幕上方的窗口。它不受应用程序限制,可以在所有应用程序内始终保持正常工作。
autojs 悬浮窗指南:打造气泡提示
第一步:导入必要的库
importClass(android.widget.Toast);
importClass(android.view.Gravity);
importClass(android.graphics.Color);
绘制气泡提示
// 调整大小和边距
var width = 400;
var height = 200;
var margin = 50;
var backgroundColor = android.graphics.Color.BLUE;
var textSize = 24;
var textColor = android.graphics.Color.WHITE;
// 创建一个文本框来容纳提示信息
var tv = new android.widget.TextView(this);
tv.setBackgroundColor(android.graphics.Color.BLUE);
tv.setGravity(android.view.Gravity.CENTER);
tv.setTextSize(24);
tv.setPadding(50, 50, 50, 50);
tv.setText("Hello from the懸浮窗气泡");
// 创建悬浮窗并关联文本框
var windowManager = context.getSystemService(Context.WINDOW_MANAGER_SERVICE);
var windowParams = windowManager.newLayoutParams(-1, -2);
windowParams.gravity = android.view.Gravity.CENTER;
windowParams.x = 200;
windowParams.y = 200;
windowManager.windowLayoutParams(tv, windowParams);
// 自定义关闭行为(可选)
tv.setOnClickListener(new android.view.View.OnClickListener() {
public void onClick(android.view.View v) {
// 关閉悬浮窗
windowManager.removeView(tv);
}
});
示例:在底部中央居中的气泡提示
使用 Gravity.CENTER
属性将气泡提示垂直居中。要将提示固定在屏幕底部,请使用 Gravity.Bottom
属性,并确保 windowParams.y
值为 0。
windowParams.gravity = android.view.Gravity.CENTER | android.view.Gravity.Bottom;
windowParams.y = 0;
结论
使用 autojs 的悬浮窗特性,我们可以轻松创建一个类似于 toast 的气泡提示,并克服 toast 的局限性。该气泡提示可以在屏幕上始终保持悬浮,不受应用程序限制,并可以进一步进行个性化定制。