注册 登录
发贴工具
查看: 29|回复: 0
打印 上一主题 下一主题

[24小时收录超级好的网站] floatUI自定义极度美化悬浮窗

[复制链接]

2270

主题

2318

帖子

1万

积分

积分
13826
跳转到指定楼层
楼主
  1. /*
  2.    欢迎使用AiWork安卓自动化IDE
  3.    帮助文档: http://help.autoapp.net.cn
  4.    官方地址: www.aiwork24.com
  5.    qq群: 743723025
  6. */
  7. // 定义一个名为悬浮窗的构造函数
  8. function 悬浮窗() {
  9. }

  10. // 创建一个悬浮窗实例
  11. var float = new 悬浮窗()
  12. // 定义一个全局变量用于控制停止状态
  13. var 全局_停止 = false

  14. // 为悬浮窗构造函数的原型添加create方法,用于创建悬浮窗界面
  15. 悬浮窗.prototype.create = function () {
  16.     // 创建一个floatUI实例,floatUI是一个用于创建浮窗界面的类
  17.     var fui = new floatUI()
  18.     // 设置默认屏幕高度为1920像素
  19.     this.screenHeight = 1920 // 默认值
  20.    
  21.     // 尝试获取实际屏幕高度
  22.     try {
  23.         // 使用context对象获取屏幕显示信息,并从中获取屏幕高度像素值
  24.         this.screenHeight = context.getResources().getDisplayMetrics().heightPixels;
  25.     } catch(e) {
  26.         // 如果获取屏幕高度失败,则打印错误信息并使用默认值
  27.         printl("获取屏幕高度失败,使用默认值: " + e);
  28.     }
  29.    
  30.     // 定义收起和展开时悬浮窗的高度
  31.     var 收起高度 = 45;  // 只显示展开按钮的高度
  32.     var 展开高度 = 250; // 完全展开的高度
  33.    
  34.     // 加载XML布局,创建悬浮窗界面
  35.     fui.loadXML(`
  36.       <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  37.          android:layout_width="wrap_content"
  38.          android:layout_height="wrap_content"
  39.          android:background="#00000000"
  40.          android:alpha="0.8"
  41.          android:background="@drawable/lin_border_radius"
  42.          android:orientation="vertical">
  43.          
  44.         <!-- 展开按钮 -->
  45.         <ImageButton
  46.             android:id="button_open"
  47.             android:layout_width="35dp"
  48.             android:layout_height="35dp"
  49.             android:src="资源/展开.png"
  50.             android:scaleType="fitXY"
  51.             android:background="#00000000"
  52.             android:padding="5dp"/>
  53.             
  54.         <!-- 功能按钮区 -->
  55.         <LinearLayout
  56.             android:id="content_layout"
  57.             android:layout_width="wrap_content"
  58.             android:layout_height="wrap_content"
  59.             android:orientation="vertical"
  60.             android:visibility="gone">
  61.             
  62.             <ImageButton
  63.                 android:id="button_start"
  64.                 android:layout_width="35dp"
  65.                 android:layout_height="35dp"
  66.                 android:src="资源/开始.png"
  67.                 android:scaleType="fitXY"
  68.                 android:padding="5dp"
  69.                 android:background="#00000000"/>
  70.                
  71.             <ImageButton
  72.                 android:id="button_stop"
  73.                 android:layout_width="35dp"
  74.                 android:layout_height="35dp"
  75.                 android:src="资源/停止.png"
  76.                 android:scaleType="fitXY"
  77.                 android:padding="5dp"
  78.                 android:background="#00000000"/>
  79.                
  80.             <ImageButton
  81.                 android:id="button_setting"
  82.                 android:layout_width="35dp"
  83.                 android:layout_height="35dp"
  84.                 android:src="资源/设置.png"
  85.                 android:scaleType="fitXY"
  86.                 android:padding="5dp"
  87.                 android:background="#00000000"/>
  88.                
  89.             <ImageButton
  90.                 android:id="button_updata"
  91.                 android:layout_width="35dp"
  92.                 android:layout_height="35dp"
  93.                 android:src="资源/下载.png"
  94.                 android:scaleType="fitXY"
  95.                 android:padding="5dp"
  96.                 android:background="#00000000"/>
  97.                
  98.             <ImageButton
  99.                 android:id="button_close"
  100.                 android:layout_width="35dp"
  101.                 android:layout_height="35dp"
  102.                 android:src="资源/关闭.png"
  103.                 android:scaleType="fitXY"
  104.                 android:padding="5dp"
  105.                 android:background="#00000000"/>
  106.         </LinearLayout>
  107.       </LinearLayout>
  108.     `);
  109.    
  110.     // 将创建的floatUI实例赋值给当前悬浮窗实例的ui属性
  111.     float.ui = fui;
  112.    
  113.     // 设置初始位置:屏幕底部只露出展开按钮
  114.     this.setPos(0, this.screenHeight - 收起高度);
  115.    
  116.     // 获取XML布局中的各个UI元素
  117.     this.btn_open = fui.findViewById("button_open");
  118.     this.content_layout = fui.findViewById("content_layout");
  119.     this.btn_start = fui.findViewById("button_start");
  120.     this.btn_stop = fui.findViewById("button_stop");
  121.     this.btn_setting = fui.findViewById("button_setting");
  122.     this.btn_updata = fui.findViewById("button_updata");
  123.     this.btn_close = fui.findViewById("button_close");
  124.    
  125.     // 初始化按钮事件
  126.     this.initButtons();
  127. };

  128. // 初始化按钮事件的方法,为各个按钮设置点击事件监听器
  129. 悬浮窗.prototype.initButtons = function() {
  130.     var self = this;
  131.    
  132.     // 设置展开/收起按钮的点击事件
  133.     this.btn_open.setOnClickListener(function() {
  134.         if (self.content_layout.getVisibility() === View.VISIBLE) {
  135.             // 如果当前是展开状态,则收起
  136.             self.setPos(0, self.screenHeight - 44);
  137.             sleep(100); // 等待100毫秒
  138.             self.content_layout.setVisibility(View.GONE);
  139.         } else {
  140.             // 如果当前是收起状态,则展开
  141.             self.content_layout.setVisibility(View.VISIBLE);
  142.             self.setPos(0, self.screenHeight - 250);
  143.         }
  144.     });
  145.    
  146.     // 设置开始按钮的点击事件
  147.     this.btn_start.setOnClickListener(function() {
  148.         printl("启动");
  149.         全局_停止 = false;
  150.     });
  151.    
  152.     // 设置停止按钮的点击事件
  153.     this.btn_stop.setOnClickListener(function() {
  154.         printl("停止");
  155.         全局_停止 = true;
  156.     });
  157.    
  158.     // 设置设置按钮的点击事件
  159.     this.btn_setting.setOnClickListener(function() {
  160.         printl("设置");
  161.         // 加载并显示主界面
  162.         var win = window.loadUI("主界面.ui");
  163.         win.show();
  164.     });
  165.    
  166.     // 设置更新按钮的点击事件
  167.     this.btn_updata.setOnClickListener(function() {
  168.         printl("更新");
  169.     });
  170.    
  171.     // 设置关闭按钮的点击事件
  172.     this.btn_close.setOnClickListener(function() {
  173.         printl("关闭");
  174.         self.close();
  175.     });
  176. };

  177. // 定义关闭悬浮窗的方法
  178. 悬浮窗.prototype.close = function() {
  179.     // 调用floatUI对象的close方法关闭悬浮窗
  180.     this.ui.close();
  181. };

  182. // 定义设置悬浮窗位置的方法
  183. 悬浮窗.prototype.setPos = function(x, y) {
  184.     // 调用floatUI对象的setPosition方法设置悬浮窗的位置
  185.     this.ui.setPosition(x, y);
  186. };

  187. // 启动悬浮窗,调用create方法
  188. float.create();
复制代码
一个使用JavaScript编写的Android自动化脚本,用于在Android设备上创建并控制一个悬浮窗。这个脚本假设在类似于Auto.js这样的自动化IDE中运行,并且使用了一些特定的API来实现悬浮窗的功能。以下是对代码的详细解释:[size=1em]
1构造函数定义:首先定义了一个名为悬浮窗的构造函数。这并不是标准的JavaScript语法,正确的构造函数定义应该是function 悬浮窗() {}。脚本中使用了function 悬浮窗()(),这看起来像是某种自执行函数的形式,但实际上在标准JavaScript中应该是new 悬浮窗()来实例化对象。[size=1em]
2创建悬浮窗实例:使用new 悬浮窗()创建了一个悬浮窗类的实例,并将其赋值给变量float。[size=1em]
3全局变量:定义了一个全局变量全局_停止,用于控制脚本的停止状态。当这个变量为true时,意味着脚本需要停止执行。[size=1em]
4添加create方法:为悬浮窗构造函数的原型添加了一个create方法,该方法用于创建悬浮窗界面。在这个方法中,首先创建了一个floatUI实例,floatUI是用于创建浮窗界面的类。[size=1em]
5屏幕高度获取:尝试获取设备的实际屏幕高度。如果获取失败,则使用默认值1920像素。这里使用了context.getResources().getDisplayMetrics().heightPixels来获取屏幕高度。[size=1em]
6定义悬浮窗高度:定义了两个高度变量,收起高度和展开高度,分别表示悬浮窗在收起和展开状态下的高度。[size=1em]
7加载XML布局:使用fui.loadXML()方法加载一个XML布局字符串,该布局定义了悬浮窗的外观和结构。布局中包含了一个展开按钮和一个垂直排列的功能按钮区,初始状态下功能按钮区是不可见的。[size=1em]
8保存UI实例:将创建的floatUI实例赋值给当前悬浮窗实例的ui属性,以便后续的操作可以访问到这个布局。[size=1em]
9设置初始位置:使用this.setPos(0, this.screenHeight - 收起高度);将悬浮窗的位置设置在屏幕底部,只露出展开按钮。[size=1em]
10获取UI元素:通过fui.findViewById()方法获取XML布局中各个UI元素的引用,比如展开按钮、开始按钮等。[size=1em]
11初始化按钮事件:为各个按钮设置点击事件监听器。例如,当点击展开按钮时,会检查下方的功能按钮区是否可见,如果可见则收起,否则展开。开始按钮和停止按钮用于控制全局的停止变量,从而决定脚本的执行状态。设置按钮用于加载并显示主界面。更新按钮目前仅打印“更新”的信息,没有实际的功能实现。关闭按钮则调用this.close()方法关闭悬浮窗。[size=1em]
12关闭悬浮窗:定义了一个close方法,调用floatUI对象的close方法关闭悬浮窗。[size=1em]
13设置悬浮窗位置:定义了一个setPos方法,用于设置悬浮窗的位置。该方法调用floatUI对象的setPosition方法来实现。[size=1em]
14启动悬浮窗:最后,调用float.create()方法来启动悬浮窗,创建并显示界面。[size=1em]
这段代码主要是为了在Android设备上创建一个带有展开/收起功能的悬浮窗,并为其各个按钮添加事件监听器,以便用户可以通过点击悬浮窗上的按钮来实现相应的操作。[size=1em]

floatUI自定义极度美化悬浮窗 群发软件发帖工具

[backcolor=var(--yq-bg-primary)][color=var(--yq-text-primary)]
[color=var(--yq-text-primary)]
[color=var(--yq-text-primary)]


[color=var(--yq-text-primary)][backcolor=var(--yq-bg-primary)]







untoAIWROK软件agent代理模式ADB方法集合nextAIWROK软件安卓自动化auto__小结方法总汇集
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关导读了
    采集亚马逊正版群发工具有没有?
    Apr.20旅行X心语今天来说说YYPOST新功能的一个灵活用法,采集亚马逊商品信息,并且获得排名的软件,亚马逊现在越来越多客户做,淘宝的水是越来越清了,以前做电商的客户,现在都转战到外国,最赚钱的要数一些客户往亚马逊里堆了吧,拿我这个YYPOST的客户,最多的是采集,分析排名,刷价格,刷数量,改价,刷访问量等等技术

    企业发展B2B网站有什么东东软件可以发呢
    标题企业发展网B2B软件,现在虽然B2B网站收录不错,可愁的是心急的人们,他们太想一口吃撑胖子了,发帖宣传虽然不能像佛系那样淡定,但也不能像跑火车那般急躁对待,自己内容不收录,完全是自己操作内容问题,可以参考一下别人的内容是怎么弄的,然后自己要试着转变,而且收录这个内容,常常会变化的,不是一种规则就吃到老

    搜房天下房聊软件哪一个好呢
    本帖最后由 发帖软件 于 2019-5-22 16:15 编辑 2搜房天下群发房聊信息软件,开始本来打算做58同城的,但发一个就要一次点触验证码,这就让人没有感觉到存在的价值了吧,都是卖二手房和新房的搜房天下倒是可以发即时聊天信息,也没有发现他这个网站有啥子限制,登陆一个搜房天下账号,然后采集回来分类列表的网址,然后就一

    大家坛有没有好用的群发工具下载呢
    当你的笑容给我礼貌的招呼,大家坛全自动发帖软件,宣传推广是一场持久战,总是有一些人把软件用了一天,或是几个小时,就觉得自己付出太多了,那加进来的粉丝,或是流量,应该是和宣传多少成正比的,其实没有这么便宜的事,就像很多阅读量超过一百万的视频,或是电影,真正会在屏幕打赏的人不会超过三千,真正大额打赏给主

    群发正版软件中国塑料网
    中国塑料网群发软件YYPOST脚本下载地址,这个网站会有一个很奇怪的问题就是你在首页登陆无半个验证码,但在登陆网址登陆就会有一个验证码,所以我们灵活一些,在首页登陆就不用输入验证码了哈。网站秒收录比较高,但发的都是五金和建筑行业,先前有很多人都是发土建工程的大公司操作的,现在这个网站专为那个行业诞生的吧。

    OpenStreetMap网站正版2019年发帖工具下载
    本帖最后由 发帖软件 于 2019-5-21 11:13 编辑 OpenStreetMap网站全自动群发,OpenStreetMapOpenStreetMap(简称OSM,中文是公开地图)是一个网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图。有的人编辑地图然后等收录,有的人发日志等收录,我们这里也是利用地图日志做为宣传的目标,简单的脚本理

    搜房天下全自动收短信全自动识别验证码注册账号软件
    房天下自动注册机,这个脚本是前几天发房聊的脚本廷伸品种,这个脚本能做到自动注册账号,自动保存账号,自动发房聊的效果,不过今天我们主要说一说怎么注册账号写脚本吧,这个搜房天天下的账号,可以发提问,可以发房聊,发论坛,发博客,还有发个人中心页都是有秒收的效果的,这样就省去了去买号,去乱花钱的效果了吧,而

    企业邮箱安卓端有什么APP软件可以发的呢
    请输入标题企业邮箱安卓发发送邮箱脚本,这个脚本是利用企业邮箱进行群发的,全程是一种模拟手工操作的过程,所以封号是很少的,而且企业邮箱群发到普通QQ邮箱不容易进垃圾箱中的,所以这个脚本也是这样的原理,不过最好是利用一些多开器,登陆多点的QQ邮箱账号会比较流畅一些,然后用软件一个一个的切换APP进行群发邮件会

    头条留评论软件有没有好用的呢?
    今天整一个今日头条留言软件,对于留言YYPOST是优势是比较大的存在,因为他往往专注一些下拉定位的优点,像今日头条这样,还是需要一些特殊下拉定位的,因为他新闻有长有短,有图有视频的,所以综合起来定位是比较难的,如果用POST也不是很轻松可以破解他的加密参数。这个脚本也是有一个不好的地方就是换号会比较麻烦,您电

    单网页生成神器
    最近新技术,网页生成机占领了整个网络的半壁江山,效果很疯狂,虽然不知道能持续多久,作为开发软件的领头者,一直在找收录的方法,一直在努力创新着,一直被人模仿,却从没有被超越过,这个网页生成机,已经出来有一段时间了,一直没有拿出来分享,醉过醉过,它是利用的一些小小收录漏洞整的,您最好用一些老站域名,进行

关闭
快速回复 返回列表 返回顶部
本站自动发贴软件,是现在最流行的做脚本软件,这种发贴工具,不但发贴收录快,而且抢占好的先机,完全自由编辑,实现针对性群发模拟操作,软件可以顶贴,也可以发贴,可以兼容支持Discuz、PHPWind、Dvbbs三大主流论坛,有手机验证码收件,邮件收发的功能,支持验证码识别,注册问题识别,多线程任务,自动上传头像,自动激活注册邮件,兼容防注册插件,本站软件原创正版,更新效率最快的原创软件。 『网络推广软件』『自动发帖软件』『 自动发帖