飞道的博客

EasyClick 原生UI连载二十二

441人阅读  评论(0)

EasyClick 原生UI 教程

讲师:Mr-老鬼,QQ:1156346325
EasyClick 原生UI教程电梯直达EasyClick 原生UI教程总纲

EasyClick 原生UI 连载 XML悬浮窗按钮交互

注意:低配手机会造成卡死,请使用动态添加view的方式显示悬浮窗,另一篇有讲(原生UI连载之xml悬浮窗
##效果图

float_home.xml布局代码

<?xml version="1.0" encoding="utf-8"?>
<!--
 ~ Copyright(c) 2021,
 ~    项目名称:619
 ~    文件名称:float_home.xml
 ~    创建时间:2021/4/21 上午11:56
 ~    作者:laogui
 -->

<LinearLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:android="http://schemas.android.com/apk/res/android"
             xsi:noNamespaceSchemaLocation="layout.xsd"
             android:layout_height="wrap_parent"
             android:layout_width="wrap_parent"
             android:orientation="horizontal">

   <Button android:layout_height="wrap_parent"
           android:layout_width="wrap_parent"
           android:tag="tv11"
           android:text="展开悬浮窗" />
   <Button android:layout_height="wrap_parent"
           android:layout_width="wrap_parent"
           android:tag="tv12"
           android:visibility="gone"
           android:text="收回悬浮窗" />
   <TextView android:layout_height="wrap_parent"
             android:layout_width="wrap_parent"
             android:tag="tvStart"
             android:text=" 重启 "
             android:visibility="gone" />
   <TextView android:layout_height="wrap_parent"
             android:layout_width="wrap_parent"
             android:tag="tvStop"
             android:text=" 停止 "
             android:visibility="gone" />
   <TextView android:layout_height="wrap_parent"
             android:layout_width="wrap_parent"
             android:tag="tvLog"
             android:text=" 日志 "
             android:visibility="gone" />
</LinearLayout>

main.js 代码

// 部分代码
/**
*  悬浮窗按钮点击操作函数
*/
function floatXmlBtn() {
   
    let p = floaty.requestFloatViewPermission(1000)
    logd("是否有浮窗权限: " + p);
    sleep(1000)
    floaty.close("123")
    sleep(1000);
    //------------------- Android 动态代码 控制悬浮窗按钮点击事件 ---------------------------------
    //------------------- 导入 Android包 -----------------------------------------------------
    importPackage(android.widget);
    importPackage(android.graphics);
    importPackage(android.view);
    importPackage(android.text);
    //------------------- 显示xml 布局的悬浮窗 -------------------------------------------------
    let floatView = floaty.showFloatXml("123", "float_home.xml", 0, 700);
    //------------------- 获取xml 里面的子控件 view --------------------------------------------
    let showFloatBtn = floatView.findViewWithTag("tv11");
    let closeFloatBtn = floatView.findViewWithTag("tv12");
    let startJobFloatBtn = floatView.findViewWithTag("tvStart");
    let stopJobFloatBtn = floatView.findViewWithTag("tvStop");
    let logFloatBtn = floatView.findViewWithTag("tvLog");
    //-------------------  代码 设置字体颜色 ---------------------------------------------------
    startJobFloatBtn.setTextColor(Color.rgb(123, 121, 102))
    stopJobFloatBtn.setTextColor(Color.rgb(113, 171, 142))
    logFloatBtn.setTextColor(Color.rgb(183, 131, 162))
    //-------------------  按钮设置  监听点击事件 ---------------------------------------------------
    showFloatBtn.setOnClickListener(function (v) {
   
        logd(v);
        showFloatBtn.setVisibility(View.GONE);
        closeFloatBtn.setVisibility(View.VISIBLE);
        startJobFloatBtn.setVisibility(View.VISIBLE);
        stopJobFloatBtn.setVisibility(View.VISIBLE);
        logFloatBtn.setVisibility(View.VISIBLE);
    })
    //-------------------  按钮设置  监听点击事件 ---------------------------------------------------
    closeFloatBtn.setOnClickListener(function (v) {
   
        logd(v);
        showFloatBtn.setVisibility(View.VISIBLE);
        closeFloatBtn.setVisibility(View.GONE);
        startJobFloatBtn.setVisibility(View.GONE);
        stopJobFloatBtn.setVisibility(View.GONE);
        logFloatBtn.setVisibility(View.GONE);
    })
    //-------------------  按钮设置  监听点击事件 ---------------------------------------------------
    startJobFloatBtn.setOnClickListener(function (v) {
   
        logd(v);
        showFloatBtn.setVisibility(View.VISIBLE);
        closeFloatBtn.setVisibility(View.GONE);
        startJobFloatBtn.setVisibility(View.GONE);
        stopJobFloatBtn.setVisibility(View.GONE);
        logFloatBtn.setVisibility(View.GONE);
        restartScript(null, true, 3)
    })
    //-------------------  按钮设置  监听点击事件 ---------------------------------------------------
    stopJobFloatBtn.setOnClickListener(function (v) {
   
        logd(v);
        showFloatBtn.setVisibility(View.VISIBLE);
        closeFloatBtn.setVisibility(View.GONE);
        startJobFloatBtn.setVisibility(View.GONE);
        stopJobFloatBtn.setVisibility(View.GONE);
        logFloatBtn.setVisibility(View.GONE);
        exit();
    })
    //---------------------------------------------------------------------------------------
}

PS:按钮太丑 自己换背景 不做解释。

我是Mr-老鬼、QQ1156346325 。交流QQ群:620028786,647082990
------------------------------------------------版权声明------------------------------------------------------
本文版权所有~Mr-老鬼 ~转载请注明原文地址
免责声明:本文所有的教程仅限交流学习使用不得用于违法用途,造成的法律后果本人不承担责任。


转载:https://blog.csdn.net/qq_21460781/article/details/115943711
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场