console.show()
let fw = floaty.rawWindow(
<vertical w="200" h="200" bg="#80333333">
<text id="logText" bg="#000000" textColor="#ffffff" textSize="16sp">自定义悬浮窗控制台</text>
<com.stardust.autojs.core.console.ConsoleView id="console" />
</vertical>
);
// 设置文本控件的字体大小
ui.run(function() {
fw.logText.setText("自定义字体大小");
fw.logText.setTextSize(20); // 设置字体大小为20sp
});
// 将自定义控制台与运行时控制台关联
fw.console.setConsole(runtime.console);
请提供一个完整的可自定义字体的悬浮窗测试案例
悬浮窗闪了一下就消失了
现在可以保持悬浮窗了,但是悬浮窗里面有一个确认按钮?我想去掉这个确认按钮。
回答
以下是一个完整的可自定义字体的悬浮窗测试案例,该案例使用 floaty.rawWindow
创建一个自定义悬浮窗,并通过 ui.run
在 UI 线程中设置文本控件的字体大小:
// 显示控制台的悬浮窗
console.show();
// 创建自定义悬浮窗
let fw = floaty.rawWindow(
<vertical w="200" h="200" bg="#80333333">
<text id="logText" bg="#000000" textColor="#ffffff" textSize="16sp">自定义悬浮窗控制台</text>
<com.stardust.autojs.core.console.ConsoleView id="console" />
</vertical>
);
// 设置文本控件的字体大小
ui.run(function() {
fw.logText.setText("自定义字体大小");
fw.logText.setTextSize(20); // 设置字体大小为20sp
});
// 将自定义控制台与运行时控制台关联
fw.console.setConsole(runtime.console);
此代码创建了一个自定义的悬浮窗,其中包含一个文本控件和一个控制台视图。通过 ui.run
方法,在 UI 线程中设置了文本控件的字体大小为 20sp。最后,将自定义控制台与运行时控制台关联,以便在悬浮窗中显示控制台输出。
补充回答 1
如果悬浮窗闪了一下就消失了,可能是由于脚本执行完毕后,悬浮窗自动关闭了。为了保持悬浮窗不被关闭,可以使用 setInterval
或 setInterval(() => {}, 1000)
来保持脚本运行。以下是修改后的示例代码:
// 显示控制台的悬浮窗
console.show();
// 创建自定义悬浮窗
let fw = floaty.rawWindow(
<vertical w="200" h="200" bg="#80333333">
<text id="logText" bg="#000000" textColor="#ffffff" textSize="16sp">自定义悬浮窗控制台</text>
<com.stardust.autojs.core.console.ConsoleView id="console" />
</vertical>
);
// 设置文本控件的字体大小
ui.run(function() {
fw.logText.setText("自定义字体大小");
fw.logText.setTextSize(20); // 设置字体大小为20sp
});
// 将自定义控制台与运行时控制台关联
fw.console.setConsole(runtime.console);
// 保持脚本运行,防止悬浮窗关闭
setInterval(() => {}, 1000);
这段代码在最后添加了 setInterval(() => {}, 1000);
,以确保脚本不会立即结束,从而保持悬浮窗显示。
补充回答 2
如果你使用的是 floaty.rawWindow
创建的悬浮窗,并且想去掉悬浮窗中的确认按钮,可以通过以下方式实现:
// 显示控制台的悬浮窗
console.show();
// 创建自定义悬浮窗
let fw = floaty.rawWindow(
<vertical w="200" h="200" bg="#80333333">
<text id="logText" bg="#000000" textColor="#ffffff" textSize="16sp">自定义悬浮窗控制台</text>
<com.stardust.autojs.core.console.ConsoleView id="console" />
</vertical>
);
// 设置文本控件的字体大小
ui.run(function() {
fw.logText.setText("自定义字体大小");
fw.logText.setTextSize(20); // 设置字体大小为20sp
});
// 将自定义控制台与运行时控制台关联
fw.console.setConsole(runtime.console);
// 隐藏悬浮窗中的确认按钮
ui.run(function() {
fw.console.findViewById(com.stardust.autojs.R.id.input_container).visibility = android.view.View.GONE;
});
// 保持脚本运行,防止悬浮窗关闭
setInterval(() => {}, 1000);
这段代码在最后添加了隐藏确认按钮的逻辑,通过 fw.console.findViewById(...).visibility = android.view.View.GONE;
将确认按钮设置为不可见。这样就可以去掉悬浮窗中的确认按钮了。