EasyClik安卓原生UI免费版教程
免费教程说明
UI入门
EasyClick 官方支持的安卓组件
排版绘制
↗
布局
↗
LinearLayout 线性布局
RadioGroup 单选布局
ScrollView 垂直滚动框布局
FrameLayout 帧布局
HorizontalScrollView 横向滚动框
CardView卡片布局
include 引用布局
控件
↗
TextView 控件
View 视图
EditText 输入框控件
Button 按钮控件
CheckBox 复选框
RadioButton 单选按钮
Spinner 下拉选择框
Swtich 开关按钮
ImageView 图像
WebView 内嵌浏览器
公有属性表
人机交互
↗
按钮点击操作
单选按钮,复选框,开关选中操作
下拉框选中操作
修改文本内容
保存UI参数脚本读取值
UI中启动脚本
UI中启动EC设置
清空UI参数
对话框
悬浮窗
脚本与 UI 交互
UI与网络交互
原生UI 学习思路
本站点使用 MrDoc 构建
-
+
悬浮窗
# 悬浮窗 >s EC的悬浮窗有三种 - 官方日志悬浮窗 - 官方启停按钮悬浮窗 - 自定义悬浮窗 >d 要展示悬浮窗必须先有悬浮窗权限,应用前台展示权限 ```js hasFloatViewPermission();// 悬浮窗权限检测 有则返回true 无则返回false // 悬浮窗权限申请 同步方式 参数为 超时时长 单位毫秒 // 注意在UI中不能使用这种方式申请 会导致UI ANR错误 也就是所谓的 无响应错误 requestFloatViewPermission(10000); // 悬浮窗权限异步申请 参数解释 第一个为超时时长单位毫秒 第二个位 权限申请结果回调函数,里面的参数为结果 true则为申请成功false为申请失败 requestFloatViewPermissionAsync(20000, function (r) { ui.logd("申请浮窗权限: " + r); }); ``` ## 官方日志悬浮窗 ```js showLogWindow();// 展示日志悬浮窗 closeLogWindow();// 关闭日志悬浮窗 // x: 起始X位置 // y: 起始Y位置 // w:宽度 // h:高度 // textSize:日志的字体大小 // backgroundColor:背景颜色,例如#336699 // title:日志框标题 // showTitle:是否显示标题 // backgroundImg 背景图片,支持GIF动画,放到工程的res文件夹,录入填写res/a.png // backgroundAlpha 背景图的透明度 255 - 0 var m = { "x": 100, "y": 200, "w": 600, "h": 600, "textSize": 12, "backgroundColor": "#ffffff", "title": "我是日222志", "showTitle": false } showLogWindow(); setLogViewSizeEx(m); sleep(5000); // show: 是否展示 // h: 高度 -1 代表自适应 // textSize: 日志的字体大小 // backgroundColor: 背景颜色,例如#336699 var m = { "show": true, "h": 150, "textSize": 12, "textColor": "#000000", "backgroundColor": "#ffffff" } showLogWindow(); sleep(1000) setLogFixedViewEx(m);// 配置展示固定消息 setFixedViewText("TEST\n都是对的");// 更新固定展示的文本内容 ``` ## 官方启停按钮悬浮窗 ```js // 展示启停按钮悬浮窗 ui.showCtrlWindow() // 这里最好用延时,因为showCtrlWindow是异步的,防止没效果 ui.run(1000, function () { //移出对应的视图 //关闭悬浮框按钮 ui.removeCtrlView("log_close_ctrl") //回主页按钮 ui.removeCtrlView("main_page_ctrl") //脚本启停按钮 ui.removeCtrlView("script_status_ctrl") //日志框按钮 ui.removeCtrlView("log_window_ctrl") //退出脚本按钮 ui.removeCtrlView("system_power_ctrl") //加入新的按钮 ui.addCtrlView("tag", "res/a.png", 32, 32, 0, function (v) { logd(v); //启动脚本 ui.start(); }) }) ui.run(3000, function () { //移出所有控制视图 ui.removeAllCtrlView() }) ui.run(5000, function () { //重置 ui.resetDefaultCtrlView() }) ui.closeCtrlWindow();// 关闭启停悬浮窗 ``` ## 自定义悬浮窗 ```js let tag = "悬浮窗标识" floaty.close(tag)//关闭自定义的标识为tag的悬浮窗 //展示main.xml文件的视图,并且返回安卓原生原生的对象 // 参数解释 第一个 tag 是悬浮窗的名称标识 // 第二个为 xml布局文件 // 第三个 展示的悬浮窗的位置 x坐标 // 第四个 展示的悬浮窗的位置 Y坐标 let view = floaty.showFloatXml(tag, "main.xml", 100, 100); logd(view); if (view) { // 从悬浮窗中查找视图tag=web的对象 (例子) //let web = view.findViewWithTag("web") } sleep(2000) //更新尺寸 floaty.updateSize(tag, 800, 1800) sleep(2000) //更新X坐标 floaty.updateX(tag, 100) sleep(2000) //更新X坐标 floaty.updateY(tag, 100) sleep(2000) //更新不可触摸状态 floaty.touchable(tag, false) sleep(10000) //更新可以触摸状态 floaty.touchable(tag, true) floaty.focusable(true);// 设置悬浮窗聚焦状态 true 或者 false floaty.getX(tag) //获取浮窗位置X坐标 floaty.getY(tag) //获取浮窗位置Y坐标 floaty.getWidth(tag) //获取浮窗宽度 floaty.getHeight(tag) //获取浮窗高度 ``` 我是Mr-老鬼、QQ1156346325 -------------------------版权声明---------------------- 版权所有~Mr-老鬼 ~转载请注明原文地址。 免责声明:本文所有的教程仅限交流学习使用不得用于违法用途,造成的法律后果本人不承担责任。
Mr、老鬼
2025年5月11日 15:22
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码