IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> autojs-造雾者-欢迎使用精美ui界面模板 -> 正文阅读

[移动开发]autojs-造雾者-欢迎使用精美ui界面模板

作者:造雾者
微信:LGD-Lang
QQ:130468168
autojs/JavaScript
有偿收徒
有偿解答
欢迎打扰~

话不多说直接上代码

"ui";

var storage=storages.create("data");//创建一个用于存储欢迎页是否已经展示过的本地存储
storage.clear();//删除这个本地存储的数据(用于调试,保证每次运行都显示欢迎页)
function start(){//启动函数
    storage.put("Welcome","true");//记录欢迎页已经启动过
    // !!看这里 下一行 ★★★★★
    engines.execScriptFile("main.js");//运行主脚本
}
if(storage.get("Welcome")=="true"){//若欢迎页已经启动过,则直接运行启动函数
    start();
    exit();
}



//activity.window.addFlags(android.view.WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);//设置状态栏透明
activity.window.addFlags(android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN);//设置全屏

function Color(color){
    return android.graphics.Color.parseColor(color);
}
function GradientDrawable(orientation,color){
    var colors=[];
    color.forEach(color=>colors.push(Color(color)));
    return new android.graphics.drawable.GradientDrawable(android.graphics.drawable.GradientDrawable.Orientation[orientation],colors);
}

ui.layout(
    <relative>
        <viewpager id="viewpager">
            <relative>
                <vertical w="*" h="*" id="firstpage" gravity="center">
                    <text text="作者:造雾者" textSize="45sp" textColor="#FFFFFF" gravity="center"/>
                    <text text="滑动屏幕来了解更多信息" marginTop="10" textSize="15sp" textColor="#A0FFFFFF" gravity="center"/>
                </vertical>
                <text id="skip" text="单击此处以跳过" marginBottom="100" textSize="13sp" textColor="#30FFFFFF" gravity="center" layout_alignParentBottom="true" layout_centerHorizontal="true"/>
            </relative>
            <vertical id="page1" gravity="center">
                <text text="造雾" textSize="45sp" textColor="#FFFFFF" gravity="center"/>
                <text text="脚本交流社区" marginTop="10" textSize="15sp" textColor="#A0FFFFFF" gravity="center"/>
            </vertical>
            <vertical id="page2" gravity="center">
                <text text="便捷" textSize="45sp" textColor="#FFFFFF" gravity="center"/>
                <text text="脚本-一触即发" marginTop="10" textSize="15sp" textColor="#A0FFFFFF" gravity="center"/>
            </vertical>
            <vertical id="permissionpage" gravity="center">
                <text text="需要授权无障碍" textSize="45sp" textColor="#FFFFFF" gravity="center"/>
                <text id="permission" text="单击此处进行授权" marginTop="10" textSize="15sp" textColor="#A0FFFFFF" gravity="center"/>
            </vertical>
            <vertical id="startpage" gravity="center">
                <text text="现在开始" textSize="45sp" textColor="#FFFFFF" gravity="center"/>
                <text text="单击下方按钮开始使用" marginTop="10" textSize="15sp" textColor="#A0FFFFFF" gravity="center"/>
                <card id="start" cardBackgroundColor="#ECEFF1" w="60" h="60" cardCornerRadius="30" marginTop="50" gravity="center">
                    <img w="30" h="30" src="drawable/ic_collapsed"/>
                </card>
            </vertical>
        </viewpager>
        <tabs id="tabs" marginBottom="50" w="80" h="2" bg="#50AAAAAA" layout_alignParentBottom="true" layout_centerHorizontal="true" visibility="gone"/>
    </relative>
);

ui.viewpager.overScrollMode=android.view.View.OVER_SCROLL_NEVER;//删除滑动到底时的边缘阴影

ui.tabs.setupWithViewPager(ui.viewpager);//绑定ViewPager到指示器
ui.tabs.selectedTabIndicatorColor=Color("#FFFFFF");//设置tabs指示器颜色
ui.tabs.selectedTabIndicatorHeight=ui.tabs.layoutParams.height;//设置指示器高度与tabs同高

//为页面设置渐变色背景
ui.firstpage.backgroundDrawable=GradientDrawable("TL_BR",["#81C784","#2E7D32","#2E7D32"]);
ui.page1.backgroundDrawable=GradientDrawable("TL_BR",["#4FC3F7","#0277BD","#0277BD"]);
ui.page2.backgroundDrawable=GradientDrawable("TL_BR",["#FFF176","#F9A825","#F9A825"]);
ui.permissionpage.backgroundDrawable=GradientDrawable("TL_BR",["#80DEEA","#0097A7","#0097A7"]);
ui.startpage.backgroundDrawable=GradientDrawable("TL_BR",["#CFD8DC","#78909C","#78909C"]);

ui.skip.click(()=>ui.viewpager.currentItem=ui.viewpager.childCount-1);//点击跳过则跳转到最后一页

permissionpage=ui.viewpager.childCount-1-1;//授权页下标(启动页前一页)(启动页固定最后一页)

ui.permission.click(()=>{
    if(!getMissingPermission()){//点击检查授权,已获得授权则跳转到下一页
        ui.permission.setText("已获得授权");        
        setTimeout(()=>{
            ui.viewpager.currentItem=ui.viewpager.currentItem+1;
        },500);
    }else{
        ui.permission.setText("单击此处检查授权");
        getPermission(getMissingPermission());
    }
});

ui.viewpager.setOnPageChangeListener({
    onPageSelected:function(index){
        if(index==ui.viewpager.childCount-1&&getMissingPermission()){//未授权则在打开启动页时跳转到授权页
            setTimeout(()=>{
                ui.viewpager.currentItem=permissionpage;
            },0);
        }else if(index==permissionpage){//打开授权页时自动检查授权以更正提示内容
            if(!getMissingPermission())
                ui.permission.setText("已获得授权");
            else
                ui.permission.setText("单击此处进行授权");
        }
        if(index==ui.viewpager.childCount-1||index==0){//控制首页和末页不显示指示器
            ui.tabs.visibility=android.view.View.GONE;
        }else{
            ui.tabs.visibility=android.view.View.VISIBLE;
        }
    }
});

ui.start.click(()=>{
    if(getMissingPermission()){//点击启动按钮时检查授权,未授权则跳转到授权页
        ui.viewpager.currentItem=permissionpage;
    }else{
        start();
        ui.finish();
    }
});

function getMissingPermission(){//获取缺失权限列表
    var result=[];
    if(auto.service==null)result.push("accessibility");//检查无障碍服务
    return result.length>0?result:null;
}

function getPermission(permission){//根据缺失权限列表,申请授权,每次只进行一种权限的申请
    if(permission.indexOf("accessibility")>-1){
        toast("请找到并启用此应用的无障碍服务");
        try{auto()}catch(e){};
        return;
    }
    toast("未知权限,请自行授权\n"+permission);
}










  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-10-30 12:40:07  更:2021-10-30 12:41:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:03:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码