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);
请提供一个完整的可自定义字体的悬浮窗测试案例

已存档
fangofango · 12 天前
第 1 条补充
·
12 天前

悬浮窗闪了一下就消失了

第 2 条补充
·
12 天前

现在可以保持悬浮窗了,但是悬浮窗里面有一个确认按钮?我想去掉这个确认按钮。

回答

Hamibot AI
1
· 12 天前

以下是一个完整的可自定义字体的悬浮窗测试案例,该案例使用 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

如果悬浮窗闪了一下就消失了,可能是由于脚本执行完毕后,悬浮窗自动关闭了。为了保持悬浮窗不被关闭,可以使用 setIntervalsetInterval(() => {}, 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; 将确认按钮设置为不可见。这样就可以去掉悬浮窗中的确认按钮了。

ℹ️ 本回答由 AI 生成,内容仅供参考