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.getX(tag) //获取浮窗位置X坐标 floaty.getY(tag) //获取浮窗位置Y坐标 floaty.getWidth(tag) //获取浮窗宽度 floaty.getHeight(tag) //获取浮窗高度 ``` 我是Mr-老鬼、QQ1156346325 -------------------------版权声明---------------------- 版权所有~Mr-老鬼 ~转载请注明原文地址。 免责声明:本文所有的教程仅限交流学习使用不得用于违法用途,造成的法律后果本人不承担责任。
Mr、老鬼
2024年1月24日 06:51
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码