窗口全操作实例讲解

作者:创世魂

 

● 辅助说明

注意:本类位于“安卓基本类”模块中,必须添加此模块才能使用。

 

一、窗口操作准备工作

 

● 窗口生命周期解释

当安卓程序运行后,窗口的活动状态就会发生改变。

每个窗口也都有属于自己的活动状态

大致分为四个状态:

活动状态:当前窗口位于前台,用户可见并且可以对窗口进行操作。

暂停状态:当前窗口被其它窗口或者其它APP覆盖。

停止状态:当前窗口不可见,并且失去焦点。

销毁状态:当前窗口关闭,或者程序结束运行。

 

上图展示了安卓窗口的完整的生命周期

一个完整的安卓APP,通常情况下有"多个窗口",每个"窗口"都有属于自己的"生命周期"

窗口创建时“通知_被创建”会被调用。

窗口启动时“通知_被启动”会被调用。

窗口被重启“通知_被重新启动”会被调用。

窗口激活后“通知_被激活”会被调用。

窗口被暂停“通知_失去激活”会被调用。

窗口被停止"通知_被停止"会被调用。

窗口被关闭"通知_将被销毁"会被调用。

 

 

● 生命周期实例

 

举个例子说:

启动程序后“启动类”窗口就会触发“通知_被创建/被启动/被激活”

"启动类窗口"切换"窗口2"的时候。

"启动类窗口"就会触发"失去激活",而"窗口2"就会触发"被创建/被启动/被激活",开始它的生命周期

如果关闭“窗口2”那么“启动类窗口”就会重新触发“被激活”

如果"启动类窗口"进入后台(也就是被停止状态触发)。

这时重新让程序进入前台,这个时候"被重新启动"就会被触发。

 

代码如下图:

在窗口内设计一个编辑框做演示,最后添加生命周期内的“虚拟方法”。

点击跳转查看“虚拟方法”的添加方法。

给每个方法下都写一个“编辑框1.添加内容”

 

运行效果(GIF):

可以看到程序运行后“被创建\被启动\被激活”依次添加进来了。

随后我按下了“Home”键返回了桌面,一闪而过的时候可以隐约看到“失去激活”被添加进来。

重新打开程序,可以看到不仅多了“失去激活”紧跟其后还有一个“被停止”

证明程序进入后台后“通知_被停止”也被调用。

因程序从后台重新进入前台,自然“被重新启动”也被调用。

紧跟其后的是“被启动/被激活”

最后我按下“返回键”退出程序“通知_将被销毁”被调用,设置的提示框也弹出。

 

 

● 虚拟方法创建

 

右键“窗口”基础类任意区域,选择“添加‘启动类’虚拟方法”

备注:在火山中安卓APP“启动窗口”的名字必须叫“启动类”,而且无法修改。

 

选择后这样我们就打开了“启动类”窗口的“虚拟方法”

最后选择你要创建的“虚拟方法”,然后点击“添加”即可。

 

 

● 设计一个界面

 

加入一个线性布局器,将其“布局方向”属性设置为“横向布局”

然后在其中放两个按钮,最后在线性布局器的外面放一个编辑框

编辑框右侧属性的组件宽度类型,设置为“匹配父组件宽度”

 

 

二、窗口虚拟方法

 

● 通知_被创建

 

帮助文档如下图:

可以看到本虚拟方法有“三个”参数。

参数1:“启动信息对象”用来提供载入本窗口传递过来的“启动信息”

例如:载入窗口方法,有一个“数据包类”参数,提供参数后,这里就可以用“启动信息类”接收传递的参数。

参数2:“载入参数”对象类,载入窗口2可以传递本参数。

参数3:就是传递的“参数2”的数组成员数了。

 

代码编写(1)

使用快捷键Ctrl+D创建一个新的,起名“窗口2”,基础类填写“窗口”

随后鼠标右键打开“窗口2界面布局”,放置一个“编辑框”

设置编辑框,组件宽度类型为“匹配父组件宽度”

最后鼠标右键添加“窗口2”“通知_被创建”虚拟方法。

 

代码编写(2)

首先添加启动类“通知_被创建”虚拟方法。

在该方法下创建一个类型为“数据包类”的变量(名称随意)。

利用数据包类“写文本字段”方法,可以写一段数据存储起来。

写文本字段有三个参数,并且支持动态调用。

参数1:为要操作的数据包类,因支持动态调用,所以这里可以省略不写。

直接写参数2:字段名(可以理解为“标识”,名称随意)

参数3:填写你要传递的文本数据即可。

 

代码编写(3)

窗口2“通知_被创建”下面,给本窗口设置一个标题方便区分(黄色箭头)。

然后利用参数启动信息“取附带数据包”方法,继续“读文本字段”方法。

字段名自然是填写启动类那边输入的字段名。

最后赋值给“编辑框1.内容”看看效果。

 

运行效果如下图:

运行后可以看见,程序直接载入到了“窗口2”,并且“传递的文本”也成功显示在了“编辑框”内。

 

 

● 通知_被启动

 

帮助文档如下图:

可以看到被启动“没有任何参数”“返回值”,用户可见之后调用。

 

代码编写

通过“生命周期图”可以得知,“被创建”后紧跟着就是“被启动”

我们可以利用“编辑框1.添加内容”的方法来验证一下。

隐藏掉原来的代码,在“被创建”“被启动”的下面,分别写上一些内容。

 

运行效果如下图:

可以看到“通知_被启动”确实是跟着“通知_被创建”

 

● 通知_被重新启动

 

帮助文档如下图:

可以看到没有任何参数。

注意红色方框内的提示,“窗口被停止”重新“载入”的时候,会触发“本虚拟方法”

并且紧跟着,“通知_被启动”会重新触发一次。

 

代码编写如下图:

添加“通知_被重新启动”虚拟方法,利用“编辑框1.添加内容”方法,添加一个“文本”进行进行测试。

 

运行效果如下图(GIF):

最简单直接的方法“按下手机Home键”,返回桌面后,重新打开本程序。

可以看到“编辑框”内新增了“被重新启动”“被启动”两个文本。

 

 

● 通知_被激活

 

帮助文档如下图:

可以看到没有任何参数。

通过“生命周期图”可以得知,本方法紧跟着“被启动”

并且本方法调用,意味着窗口进入了前台。

 

代码编写如下图:

添加“通知_被激活”虚拟方法,依然是用“编辑框1.添加内容”进行测试。

 

运行效果如下图:

可以看到“被启动”后紧跟着就是“被激活”

 

● 通知_失去激活

 

帮助文档如下图:

可以看到没有任何参数。

失去激活的三种方式。

第一:本窗口被其它窗口覆盖。

第二:本程序被其它程序覆盖。

第三:按下手机home键进入桌面。

 

代码如下图:

依然利用“编辑框1.添加内容”进行判断。

 

运行效果如下图(GIF):

最简单的方法“Home键”回到桌面,重新打开程序,可以看到多了一个“失去激活”

对应的“被重新启动”“被启动”“被激活”也会被重新全部调用。

 

● 通知_清理数据

 

帮助文档如下图:

可以看到本方法没有任何参数。

关闭本窗口前,“本虚拟方法”会被调用,处理一些不耗时的操作。

并且本方法处于“将被销毁”前面和“被停止”后面。

 

代码编写如下图:

添加“通知_清理数据”的虚拟方法,可以利用“提示框”来进行测试。

添加“按钮”被单击事件,指定来源对象“按钮1”

最后调用关闭方法,来关闭本窗口。

 

运行效果如下图(GIF):

可以看到点击“按钮1”后,执行“关闭”后,会弹出“被清理”提示。

您可以把提示框方法,换成您要操作的其它方法,一定注意,不能耗时过长的方法。

 

● 通知_被停止

 

帮助文档如下图:

可以看到没有任何参数,窗口被停止时调用本方法。

除了帮助文档中描述的情况之外,还有三种情况本方法会调用。

第一:打开其它程序。

第二:home键返回桌面。

第三:程序结束。

 

代码编写如下图:

我们在“按钮_被单击”事件下,增加一个“载入窗口”的方法。

载入我们最开始定义的“窗口2”

添加“被停止”虚拟方法,可以弹出一个“提示框”做演示。

 

运行效果如下图:

可以看到执行“按钮1”进入“窗口2”后,“提示框”会被弹出。

也就证明“启动类”窗口的“被停止”虚拟方法被调用。

 

● 通知_将被销毁

 

帮助文档如下图:

可以看到没有任何参数和返回值。

窗口“被销毁”的时候“本方法”会被调用,不要在本方法下写“清理数据”

数据清理要在“通知_清理数据”方法下添加。

 

代码编写如下图:

创建“通知_将被销毁”虚拟方法。

写一个“提示框”方法做判断。

 

运行效果如下图:

最简单的方法就是,进入程序后“按下返回键”“窗口”就会“进行销毁”,对应的“销毁提示”就会弹出。

 

● 通知_即将初始化内容

 

帮助文档如下图:

可以看到本方法也没有任何参数和返回值,并且本方法在“通知_被创建”之前调用。

此时“窗口内容”还没有被载入,因此本方法下“禁止操作”任何窗口组件。

 

代码编写如下图:

因不能操作窗口内的任何组件进行测试,所以这里我们可以修改窗口标题来演示效果。

 

运行效果如下图:

执行程序后就可以看到“启动类窗口”“标题”被修改成了我们设置的内容

 

● 通知_初始化选项菜单

 

帮助文档如下图:

可以看到有一个菜单参数和逻辑返回值

如果调用了重建选项菜单“本方法”会被重新调用一次。

更新选项菜单请在通知_更新选项菜单虚拟方法下填写。

 

代码编写如下图:

我们随便添加三个菜单。

 

运行效果如下图:

运行程序后右上角就会出现“菜单按钮”

备注:如果标题被隐藏,会看不到“菜单按钮”

 

● 通知_更新选项菜单

 

帮助文档如下图:

可以看到一个“菜单”参数和一个“逻辑”返回值。

每次即将显示窗口时,本方法都会被调用,用户可以在本方法下“更新菜单”

 

代码编写如下图:

例如:我们在“通知_初始化选项菜单”中随意添加几个菜单后。

随后在“通知_更新选项菜单”下也添加几个菜单。

注意:要添加删除所有菜单项目方法,不然会在“原菜单”的基础上“增加菜单”

 

运行效果如下图:

点击右上角的菜单按钮弹出菜单后会显示“更新选项菜单”中的新菜单。

 

● 通知_获得返回数据

 

帮助文档如下图:

可以看到有三个参数:

参数1:载入窗口时提供的返回值请求码

参数2:置返回数据方法提供的“所返回结果码”

参数3:置返回数据方法提供的返回数据

简单来说,就是“窗口2”关闭的时候“传送数据”“窗口1”获得“窗口2”传送的数据。

中间的过程用需要用“请求码”来判断。

 

代码编写(1)

首先在“启动类窗口”,的“按钮_被单击”事件下写“载入窗口”方法。

参数1:写要载入的窗口类

参数2:可省略不写。

参数3:填写“请求码”(数值随意)。

 

代码编写(2)

窗口2中,增加一个按钮

然后添加“按钮_被单击”事件,定义一个类型为“数据包类”的变量(名称随意)。

随后利用写文本字段方法,写一串准备返回的文本数据。

最后利用“置返回数据”方法,把定义的“数据包变量”写入参数2

参数1则填写一个返回码(黄圈内)。

 

代码编写(3)

启动类窗口下,添加“通知_获得返回数据”虚拟方法。

最后用“如果”判断所返回结果码。

最后利用参数3取附带数据包方法的“读文本字段”,去读取保存数据的字段名。

利用“编辑框1”添加内容方法,把整段代码放入。

 

运行效果如下图(GIF):

可以看到“载入窗口2”返回之后,“启动类”窗口中“编辑框”增加了返回的数据。

并且还可看出“本方法”“重启新启动”之前执行。

 

 

● 通知_即将发送按键事件

 

帮助文档如下图:

可以看到有一个“键盘事件类”参数和一个“逻辑返回值”。

顾名思义就是用来监听“键盘”按下事件。

这个键盘自然是给“手机”或者其它“安卓设备”外接的“实体键盘”或者“虚拟键盘”

并且本方法在“通知_按键事件”之前提示触发本事件。

 

代码编写如下图:

添加本虚拟方法后,可以利用“按键事件类”来对ctrl键进行监听。

 

运行效果如下图:

外接接键盘后,按下键盘的“ctrl”,本虚拟方法就会触发。

 

 

● 通知_按键事件

 

帮助文档如下图:

可以看到有三个参数,和一个逻辑返回值。

本方法在“通知_即将发送按键事件”“通知_即将发送快捷键事件”后执行。

本方法同样是用来“监听键盘”按下事件。

不同之处就是本方法多了两个参数

按键通知类型:可以判断“按键”状态。

例如:“被按下”“被放开”等……具体可以看该类型的帮助文档。

按键代码:查看“按键代码类”定义的常量值。

 

代码编写如下图:

例如:我们依然是监听ctrl键

 

运行效果如下图:

运行后可以看到“按键事件”“即将发送按键事件”之后。

 

 

● 通知_即将发送快捷键事件

 

帮助文档如下图:

本方法有一个“按键事件类”参数和一个逻辑返回值。

顾名思义,就是监听“键盘”按下的组合的快捷键(Ctrl+任意键)。

本方法在“通知_按键事件”之前发送。

 

代码编写如下图:

第一步:监听ctrl键。

第二:利用“快捷键输入事件”“按键”读方法,判断“第二按键”,例如我这边判断“A”.

最后我们可以执行“编辑框1.添加内容”方法来演示效果。

 

运行效果如下图:

按下键盘“ctrl+a”组合按键后,指定内容也成功输出。

 

● 通知_即将发送触摸事件

 

帮助文档如下图:

可以看到有一个“动作事件类”参数和一个“逻辑”返回值。

顾名思义,就是当用户触摸窗口时,本方法会被调用。

本方法和“通知_被触摸”的区别就是,本方法会提前触发。

 

代码编写如下图:

例如:判断“触摸动作事件.动作”动作类型

随后依然是用编辑框1.添加内容的方法演示效果。

 

运行效果如下图(GIF):

执行后可以看到两种动作类型均被触发。

备注:模拟器的“鼠标点击”等同于“手指触摸”

 

● 通知_被触摸

 

帮助文档如下图:

可以看到本方法和“通知_即将发送触摸事件”没什么区别。

本方法在“通知_即将发送触摸事件”的后面执行。

 

代码编写如下图:

可以把“即将发送触摸事件”的代码抄下来,动作类型改成“移动”

最后用编辑框演示结果。

 

运行效果如下图(GIF):

可以看到鼠标点击“移动”的时候“被触摸”会不停的触发。

备注:模拟器的"鼠标点击移动"等同于"触摸移动"。

 

● 通知_回退键被按下

 

帮助文档如下图:

可以看到只有一个逻辑返回值,返回“真”屏蔽返回假,默认返回假

顾名思义,就是判断是否屏蔽“安卓手机”“返回键”

你也可以用“本方法”来对“按下返回键”进行一些其它的操作。

 

代码编写如下图:

添加“通知_回退键被按下”虚拟方法。

随后在本方法下,红色箭头所指的位置,直接写“==假”即可屏蔽“返回键”的退出程序操作。

代码中间可以增加一个你想要处理的方法,比如这里我添加了一个提示框

 

运行效果如下图(GIF):

可以看到,我“按下返回键”后并没有“退出程序”,仅仅只是弹出了一个设置“提示框”

 

 

● 通知_获取窗口描述

 

帮助文档如下图:

可以看到有一个“文本返回值”

当窗口不处于激活状态的时候,本方法会被调用,并且返回一个文本值。

在需要的时候,文本值提供给其它方法使用。

 

代码编写(1):

添加“通知_获取窗口描述”虚拟方法。

我们可以“隐藏”“删除”红色箭头所指的内容。

重新写一个“返回”方法,参数填需要“返回”“返回值”

 

代码编写(2):

“按钮_被单击”下,可以指定来源对象等于“按钮2”

然后利用“通知_获取窗口描述”来得到你所写的返回值。

 

运行效果如下图:

执行“按钮2”后,内容成功返回。

 

 

● 通知_用户进入

 

帮助文档如下图:

可以看到,只要窗口进行任何形式的交互,都会触发本方法。

同时还有一个相关联的方法“通知_用户离开”

 

代码编写如下图:

直接在“通知_用户进入”虚拟方法下填写你要执行的“方法”即可。

 

运行效果如下图(GIF):

可以看到“触摸”的时候会触发本方法,点击“按钮”同样会触发

 

 

● 通知_用户离开

 

帮助文档如下图:

用户离开一般分为三种情况。

第一:“home键”返回桌面。

第二:切换到“其它窗口”

第三:打开了“其它app”

 

代码编写如下图:

直接在“用户离开”虚拟方法下填写即可。

 

运行效果如下图(GIF):

可以看到切换“窗口2”,又“切换回来”的时候,“用户离开”方法被触发。

 

 

● 通知_窗口焦点被改变

 

帮助文档如下图:

可以看到有一个“逻辑”参数。

顾名思义,就是用来判断“当前窗口”是否有“焦点”

 

代码编写(1):

直接用如果判断参数的返回值,然后可以用编辑框1.添加内容看效果。

 

代码编写(2):

另外还可以点击“按钮”弹出一个“信息框”做测试。

 

运行效果如下图(GIF):

可以看到“软件启动后”,自动“获得焦点”

信息框弹出后“焦点消失”

关闭“信息框”后,“窗口焦点”又重新获取。

 

 

三、窗口读写属性

 

● 背景色(写)

 

帮助文档如下图:

顾名思义:就是设置“当前窗口”的背景颜色,并且会覆盖其它方式设置的背景。

 

代码编写如下图:

直接对本属性赋值“颜色类”“颜色常量”即可。

如果要想设置其他颜色,直接赋值“0xFF”加十六进制颜色值。

例如:当前设置的“白色”其实就是“0xFFFFFFFF”

 

运行效果如下图:

执行按钮后,可以看到“背景颜色”变成了白色。

 

 

● 背景图(写)

 

帮助文档如下图:

顾名思义就是设置一个“可绘制资源”类型的“背景图”

 

代码编写如下图:

例如:可以定义一个“可绘制资源”变量,点击“黄色箭头”所指的按钮导入一张“图片”

图片名不能是“中文”也不能是“数字”,前面的路径无所谓。

然后直接给“背景图”赋值定义的“背景图变量”即可。

 

运行效果如下图(GIF):

点击“按钮”后,可以看到“背景图”成功加载。

并且“背景图”会覆盖“背景色”,同样“背景色”会覆盖“背景图”

 

 

● 标题(写)

 

帮助文档如下图:

顾名思义,就是修改“当前窗口标题”

 

代码编写如下图:

直接给本属性“赋值”一个“文本型”的字符串即可。

 

运行效果如下图:

执行按钮1后就可以看到“标题”被修改。

 

 

● 标题(读)

 

帮助文档如下图:

顾名思义读取“当前窗口标题”并返回。

 

代码编写如下图:

利用“编辑框”做演示,直接给“编辑框的内容”赋值“标题”

 

运行效果如下图:

执行“按钮2”后,标题被“取出”

 

 

● 沉浸模式(写)

 

帮助文档如下图:

顾名思义,设置窗口是否为“沉浸模式”

沉浸模式通俗理解:手机“状态栏会透明”,将窗口显示出来。

注意:设置“沉浸模式”后,窗口“所有组件”会整体“上移”一部分。

本属性搭配“隐藏标题”使用更加完美。

 

代码编写如下图:

直接赋值“真”或者“假”即可。

“真”为沉浸模式,“假”为不沉浸。

 

运行效果如下图:

可以看到“按钮1”点击后,状态栏“黑色变透明“。

点击“按钮2”后,状态栏又恢复了“黑色”

 

 

● 界外触摸关闭(写)

 

帮助文档如下图:

顾名思义,就是设置“窗口外”的区域,触摸后“是否关闭”窗口。

通常用作“对话框窗口”的判断。

 

代码编写(1)

首先“启动类”的基础类改成“对话框窗口”

 

代码编写(2)

“按钮1”“按钮2”分别设置“真和假”

 

运行效果如下图(GIF):

可以看到程序运行后,变成了“对话框”模式。

执行“按钮1”,触摸“窗口外界”,窗口“直接关闭”

执行"按钮2",触摸"窗口外界",窗口“不会关闭”

 

 

● 屏幕方向(写)

 

帮助文档如下图:

顾名思义,设置“窗口的方向”“横”还是“纵”

 

运行(1):

执行“按钮2”就会变成“横向窗口”

 

运行(2):

执行"按钮1"就会变成"纵向窗口"

 

 

● 启动信息(读)

 

帮助文档如下图:

读取“本窗口”被载入时的“启动信息类”

通俗理解:“窗口1”载入“窗口2”传递了“参数”

你不想在“窗口2”“通知_被创建”下面获取,你就可以利用“本方法”“其它方法或事件”下获取。

 

代码编写(1)

点击“启动类”窗口的“按钮”后载入“窗口2”传递一个“数据包变量”变量过去。

 

代码编写(2)

“窗口2”“按钮_被单击”事件下面获取传递的“数据包”

直接利用本属性就可以“取附带数据包”,然后“读文本字段”

注意:黄圈不要遗漏小数点。

最后赋值给编辑框显示。

 

运行效果如下图:

进入“窗口2”后,点击“按钮”就可以成功读取“传递的数据”

 

 

● 全屏模式(显示/隐藏状态栏)

 

帮助文档如下图:

顾名思义,设置窗口是否为全屏状态(也就是隐藏系统状态栏)。

 

代码编写如下图:

直接“赋值”即可,“真”“隐藏”状态栏,“假”“显示”状态栏。

 

运行效果如下图:

左图:“按钮1”点击后,“状态栏”消失,为全屏模式。

右图:"按钮2"点击后,"状态栏"重新出现,非全屏模式。

   

 

 

● 是否被激活(读)

 

帮助文档如下图:

顾名思义,读取“当前窗口”是否“被激活”

也就是“通知_被激活”调用后就会处于“激活”状态。

 

代码编写如下图:

左图:可以在“通知_被创建”下判断一下“激活状态”

右图:另外用“按钮”判断一下“激活状态”

   

 

运行效果如下图(GIF):

“通知_被创建”“通知_被激活”之前,所以“打开软件后”必然会首先提示“没有激活”

“执行按钮”必然会提示“已经激活”

 

 

● 是否可视(写)

 

帮助文档如下图:

顾名思义,设置“当前窗口”是否“隐藏”

 

代码编写如下图:

例如:在“按钮_被单击”下写“是否可视=假”

 

运行效果如下图(GIF):

执行“按钮”后,“窗口本身”包括“窗口内组件”全部会变成“不可见”状态

并不是程序死掉了,而是窗口隐藏了起来。

 

 

● 是否已销毁(读)

 

帮助文档如下图:

顾名思义:就是判断“当前窗口”是否“已经销毁”

如果返回表示“通知_将被销毁”已经被调用。

 

代码编写如下图:

左图:“按钮”被单击下,直接用“如果”进行判断。

右图:可以在“通知_将被销毁”时间下进行一下判断。


    

 

运行效果如下图(GIF):

可以看到执行“按钮”会提示没有被销毁,而“退出程序”后会弹出“被销毁”提示。

 

 

● 是否有焦点(读)

 

帮助文档如下图:

顾名思义,就是读取“当前窗口”是否获得焦点。

 

代码编写如下图:

直接用“如果”进行判断“真”或者“假”即可。

窗口没有焦点的三种情况:

第一:被其他窗口覆盖。

第二:被其他APP覆盖。

第三:弹出了一个对话框。

 

运行效果如下图:

因当前窗口处于“前台激活”状态,所以执行“按钮”后提示“有焦点”

 

 

● 所调节音频类型(写)

 

帮助文档如下图:

顾名思义,设置当前“当前窗口”“按下音量键”所调节的“音频类型”

 

 

代码编写如下图:

例如:要“当前窗口”“按下音量键”调节“系统音量”(锁屏、按键等音量)。

直接用对应的“音频类型”赋值即可。

最终的效果就是“按钮1”点击后,此时去按音量键,就会调整系统音量

点击“按钮2”,再去按音量键,此时就会调整闹钟声音

 

● 所调节音频类型(读)

 

帮助文档如下图:

顾名思义:就是返回“当前窗口”按下“音量键”所调节的“音频类型”

 

代码编写如下图:

可以用“如果”判断调节的“音频类型”,然后“执行”,你想要“执行”的方法。

 

● 动作条可视(写)

 

帮助文档如下图:

通过本属性也可以用于显示/隐藏标题栏。

属性值为真则显示,否则隐藏。

 

代码编写如下图:

“按钮1”被点击后,显示标题栏。

“按钮2”被点击后,隐藏标题栏。

 

运行结果如下图(GIF):

 

● 状态栏颜色(写)

 

帮助文档如下图:

顾名思义,通过本属性可设置状态栏背景颜色。

注意:本设置需要安卓系统5.0以上才可以使用。

 

代码编写如下图:

“按钮1”被点击后设置颜色为白色。

“按钮2”被点击后,设置颜色为蓝色。

 

运行结果如下图(GIF):

 

● 状态栏高度(读)

 

帮助文档如下图:

通过本属性可获取当前手机状态栏高度,单位像素。

注意:手机状态栏高度未必都是一致的。

 

代码编写如下图:

直接调用本属性读取即可。

 

运行结果如下图:

 

四、其它方法

 

 

● 隐藏标题栏

 

帮助文档如下图:

它是一个通常方法,顾名思义就是用来“隐藏当前窗口标题”

并且还可以设置,是否为“全屏模式”,参数默认值为“真”

注意:本方法只能在“通知_即将初始化内容”中调用。

如果想要在任意位置隐藏标题栏请使用“动作条可视”写属性。

 

代码编写如下图:

左图:输入本方法不写参数。

右图:运行后可以看到,“标题”“状态栏”全部消失。


   

 

代码编写如下图:

本方法写一个参数“假”,运行后可以看到仅仅是“标题被隐藏”

   

 

 

● 信息框

 

帮助文档如下图:

顾名思义,在屏幕的中间弹出一个信息框。

有三个参数,我们可以给它设置“图标”“内容”“标题”

 

代码编写(1):

例如:我们创建一个“可绘制资源”变量,导入一张图。

填写“本方法”输入对应的“参数”

运行后如“右图”所示,弹出了一个带“图标”“信息框”


   

 

代码编写(2):

如果不想使用图标,我们只需要在“参数1”填写“(可绘制资源)空资源()”即可。

可以看到“右图”,运行后并没有“任何图标”显示。

   

 

 

● 提示信息框
● 警告信息框
● 错误信息框

以上“三个方法”用法一致,这里用“提示信息框”举例。

帮助文档如下图:

只有一个“文本”参数。

 

代码编写如下图:

输入“方法名”,填写想要“显示的文本”即可。


 

运行效果如下图:

执行“按钮1”后就可以看到一个带有“提示图标”的信息框。

“警告信息框”带有“警告”图标。

"错误信息框"带有"错误"图标。

 

 

● 载入窗口

 

帮助文档如下图:

可以看到有三个参数。

参数1:要载入的窗口类名称。

参数2:如果要传递数据给另外一个窗口,在本方法中填写。

参数3:另外一个窗口,返回本窗口用到的返回码。

 

代码编写如下图:

参数一:直接填写要加载的“窗口类名称”即可。

参数二:示例请看"通知_被创建"

参数三:示例请看"通知_获得返回数据"

 

运行效果如下图(GIF):

点击“按钮1”后就会进入到“窗口2”中。

 

 

● 动画载入窗口

 

帮助文档如下图:

可以看到本方法和“载入窗口”基本没区别。

不同之处就是“本方法”多了一个“切换动画”,具体可以看“窗口切换模式”的帮助文档。

 

代码编写如下图:

“参数2”写一个“从右到左”的动画效果。

 

运行效果如下图(GIF):

可以看到点击“按钮1”切换窗口的时候,多了一个“从右到左”的动画。

 

● 载入窗口2

 

帮助文档如下图:

可以看到“本方法”“载入窗口”并没有什么太大的区别。

不同之处就是“本方法”“传递参数”变成了任意类型。

如果“传递的数据”不涉及“对象”,建议用“载入窗口”载入。

 

代码编写(1):

“启动类”窗口,“按钮被单击”下写“本方法”

参数1:写要载入的窗口名字。

参数2:可以直接写要传递的参数。

 

代码编写(2):

“窗口2”“通知被创建”下填写“接收代码”

“载入参数”数组填写“0”,最后用“对象到文本”方法转换,赋值给“编辑框1”显示。

 

运行效果:

可以看到传递的数据被成功读取。

 

 

● 动画载入窗口2

 

帮助文档如下图:

可以看到“本方法”“载入窗口2”没什么区别。

不同之处就是本方法多了一个“切换动画”

具体动画效果观看“窗口切换模式”的帮助文档。

 

代码编写如下图:

例如:我们给“参数2”填写一个“从上到下”的动画效果。

 

运行效果如下图:

可以看到“载入窗口”的时候多了一个“从上到下”的切换效果。

 

 

● 关闭(窗口)

 

帮助文档如下图:

顾名思义,就是关闭当前窗口。

用途一:如果"当前窗口"是最后一个"窗口",使用"本方法"后当前app"会退出"。

具体可看:"通知_清理数据"中的使用方式。

用途二:"窗口1"载入"窗口2",当"窗口2"使用"关闭"方法后,程序则会返回"窗口1"。

具体可看:"通知_获得返回数据"中的使用方式。

 

 

● 动画关闭(窗口)

 

帮助文档如下图:

可以看“本方法”“关闭”之间的区别就是多了一个“切换动画”

具体如何使用“动画常量”,可以看动画载入窗口”

具体动画效果观看"窗口切换模式"的帮助文档。

 

 

● 播放窗口切换动画

 

帮助文档如下图:

顾名思义,就是播放窗口切换动画

不过“本方法”无法单独执行,必须在“载入窗口”“载入窗口2”“关闭”后面。

 

代码编写如下图:

在普通的“载入窗口”方法下写上“本方法”,然后参数填写一个“切换动画”

 

运行效果如下图(GIF):

可以看到“普通切换窗口”方法,也可以增加“切换动画”

 

 

● 重建(窗口)

 

帮助文档如下图:

顾名思义,就是把当前窗口进行“重建”操作。

 

代码编写如下图:

例如:我们这里在“按钮”被单击下,执行“重建”

并且在“通知_被激活”下面改变“编辑框”的内容。

 

运行效果如下图(GIF):

可以看到“当前窗口”进行了一个“重建”操作,并且“通知_被激活”也被重新触发。

 

 

● 启用标题栏进度条

 

帮助文档如下图:

顾名思义,就是在当前窗口的“标题”位置添加一个“进度条”

注意:“本方法”必须在“通知_即将初始化内容”虚拟方法下调用才有效。

注意2:部分“安卓手机设备”的主题并不支持“显示进度条”

我们可以将“窗口强制变成”一个可以“显示进度条”的主题。

例如:Holo主题。

 

代码编写(1)

在要改变的“窗口类”后面的“属性名”中填写“@安卓.附加清单”

属性值填写:常用窗口附加清单.Holo根主题

 

代码编写(2)

我们在“通知即将初始化内容”虚拟方法下填写“本方法”“参数”设置“真”

随后在“按钮”事件下,执行“置标题栏进度”“标题栏第二进度”方法来设置进度。

 

运行效果

运行后,执行“按钮1”可以看到,“标题”上面多了“两个进度”提示。

 

 

● 创建窗口组件

 

帮助文档如下图:

顾名思义,就是创建一个窗口组件,如果不能创建实例将返回空对象

有两个参数和返回值,“参数1”“返回值”的数据类型相同。

参数二:设置初始化数据,通常情况下为空即可。

 

代码编写如下图:

定一个类型为“按钮”的变量。

利用本方法创建按钮组件,赋值给定义的按钮变量

可以给“按钮”设置一个“内容”属性

最后利用“线性布局器”“添加子组件”方法,添加定义的“新按钮”即可。

 

运行效果如下图(GIF):

可以看到点击“按钮”后,出来一个“新的按钮”

 

 

● 创建窗口组件1

 

如下图:

本方法和"创建窗口组件"的区别就是多了一个"安卓窗口"类。

 

如下图:

参数1:直接填写本对象即可。

因运行效果和"创建窗口组件"一致,因此不做演示。

 

 

● 打开选项菜单

 

帮助文档如下图:

顾名思义,就是打开定义的“选项菜单”

 

代码编写如下图:

例如:随意定义几个菜单,然后在“按钮”事件下执行“本方法”

 

运行效果如下图:

点击“按钮1”就会“弹出菜单”

备注:不同“安卓版本”,显示位置可能所有“不同”

 

 

● 重建选项菜单

 

帮助文档如下图:

顾名思义,就是让“选项菜单”重新建立一次。

 

代码编写如下图:

可以在“初始化选项菜单”下,增加一个“编辑框.添加内容”方法。

 

运行效果如下图:

点击“按钮1”执行本方法后,可以看到“编辑框内”又多了“一条内容”

间接证明“通知_初始化选项菜单”被重新调用了一次。

 

 

● 关闭上下文菜单支持

 

帮助文档如下图:

“上下文菜单”的通俗理解,指定组件长按后(约一两秒)弹出的菜单。

本方法顾名思义,就是用来“关闭”指定组件弹出“上下文菜单”

 

代码编写如下图:

添加上下文菜单,请看上下文菜单的帮助文档。

例如:我们让“按钮1”点击后“按钮2”开启上下文菜单。

“按钮2”点击后,“取消”自身的“上下文菜单”

 

运行效果如下图:

可以看到点击“按钮1”“按钮2”长按后(约一两秒),就会弹出一个菜单。

备注:不同安卓版本,“菜单”显示位置可能不同(安卓5.0会在屏幕中间弹出)。

我们点击“按钮2”后,再次去长按“按钮2”“上下文菜单”将不会弹出。

 

 

● 开启上下文菜单支持

 

帮助文档如下图:

通俗理解就是,让指定组件“支持长按后”弹出一个“菜单”选项。

点击查看:开启上下文菜单

 

 

● 关闭选项菜单

 

帮助文档如下图:

顾名思义,就是“关闭”一个已经打开的“选项菜单”

 

代码编写如下图:

在需要的地方直接“输入本方法”即可,本方法不进行效果演示。

 

 

● 查找子组件

 

帮助文档如下图:

顾名思义,就是通过ID查找指定组件,如果“目标ID”的组件“不是”火山组件,将会返回“空对象”

注意:必须保证你所查找的id存在于火山程序中。

 

代码编写(1):

例如:单击一个“按钮”查找组件。

你需要定义一个“目标类型”的变量。

例如:查找“按钮”,我们就定义类型为“按钮”的变量。

利用“本方法”查找“目标ID”后,强转成“目标类型”,就可以操作“目标类型”各种方法。

例如:我这里操作的是"按钮"的内容。

注意:如果你要查找的“目标组件”,不知道“ID”是多少,需要用目标“组件名称”的读“ID”属性取出。

例如:我这里要找“按钮2”就直接写“按钮2.ID”

 

运行效果如下图:

执行“按钮1”“按钮2内容”就会发生改变。

 

 

● 显示标题栏进度条

 

帮助文档如下图:

顾名思义,就是用来隐藏和显示“标题进度条”

本方法必须搭配启用标题栏进度条使用。

参数1:是否显示可确定或不可确定进度条。

参数2:就是是否显示和隐藏进度条。

 

代码编写如下图:

例如:你需要“显示”标题栏进度条,“参数2”就填写“真”“隐藏”就填写“假”

 

运行效果如下图(GIF):

点击“按钮1”显示,点击“按钮2”隐藏。

 

 

● 移动任务到后台

 

帮助文档如下图:

通俗理解:就是“返回桌面”,相当于按下手机“home键”

 

代码编写如下图:

直接在需要的地方写“本方法”即可。

 

运行效果如下图:

编辑框内输入了内容,点击“按钮1”后程序进入后台运行,重新打开“编辑框内容”依然存在。

 

 

● 取窗口配置表

 

帮助文档如下图:

利用“本方法”可以写“窗口配置”

通俗理解就是可以“保存”一些数据,并且“程序退出”后信息依然存在。

有一个“是否添为添加写出”的逻辑参数,通常情况下直接使用“默认值”即可。

 

代码编写如下图:

“按钮1”执行后,执行的是“保存配置”的操作。

定义一个类型为“程序配置表修改器”的变量,设置参考

随后用“取窗口配置表().取修改器()”,赋值给定义的修改器变量

然后就可以利用定义的“修改器变量”“置文本配置项”方法,去写一段数据。

最后要用一个“提交”方法来确认“修改”,成功返回“真”,失败返回“假”

 

"按钮2"自然是用来"取文本配置项"的,参数直接写保存时的"配置项"的名称即可。

 

运行效果如下图:

左图:点击"按钮1",提示保存成功。

右图:点击"按钮2",编辑框内成功读取配置。

   

 

 

● 取窗口容器组件

 

帮助文档如下图:

顾名思义,就是取窗口本身的容器。

 

 

代码编写如下图:

例如:我们可以用“本方法”,取出窗口内“子组件”的数量。

 

运行效果如下图:

窗口中明明有多个组件为什么会取出来是两个?

因为“按钮1”“按钮2”是在一个“线性布局容器”内,容器内的“组件”不统计。

 

 

● 取当前焦点子组件

 

帮助文档如下图:

顾名思义,就是取出当前窗口内有“输入焦点”的组件,例如:可以取“编辑框”

取出来的组件可以干什么?具体可以看“窗口组件”类的帮助文档,点击“红圈”内的名字就可以进入。

 

代码编写如下图:

例如:修改“有输入焦点”的背景色。

可以直接在“本方法”后写“.背景色”,就可以设置“编辑框”的背景色。

如果有多个“编辑框”,哪个编辑框有输入焦点,就修改哪个编辑框的背景色。

 

运行效果如下图:

点击“按钮1”后编辑框的“背景色”就会发生改变。

 

 

● 置背景图

 

帮助文档如下图:

顾名思义,就是给窗口设置一个“背景图”,不过“背景图”参数是“可绘制对象类”

并且本方法会覆盖其它形式设置的背景。

 

代码编写如下图:

我们可以设置一个“可绘制资源”变量,载入一张“图片”

最后可以用“载入可绘制资源”方法,将“可绘制资源”转换成“可绘制对象类”

 

运行效果如下图:

点击"按钮1"窗口成功加载设置的“背景图片”

 

 

● 置标题栏第二进度

 

帮助文档如下图:

设置“标题第二进度”,可以用来当做播放器的“缓冲进度”,最大值100。

本方法需要搭配启动标题栏进度条(真)使用。

具体用法可跳转启动标题栏进度条查看。

 

 

● 置标题栏进度

 

帮助文档如下图:

可以看到“本方法”“置标题栏第二进度”相同,通用必须调用“启用标题栏进度条(真)

具体用法可跳转"启动标题栏进度条"查看。

 

 

● 置返回数据

 

帮助文档如下图:

通俗理解:当前窗口“关闭”后,“返回数据”“上一个”窗口。

参数1:输入“返回码”

参数2:输入要返回的“数据包类”

具体用法查看通知_获得返回数据

 

● 分享图片
● 分享文字
● 分享视频
● 分享音乐

 

以上几个方法都会触发系统分享,通过系统分享可将指定内容分享到指定软件中。

此处演示“分享文字”方法。

 

帮助文档如下图:

本方法共有三个参数。

参数1:设置要分享的内容。

参数2:设置分享标题(部分手机可能不显示)。

参数3:分享内容会弹出一个对话框,本参数就是用来设置对话框标题。

 

代码编写如下图:

直接调用本方法设置对应参数即可。

 

运行结果如下图(GIF):

分享后会直接将要分享的内容显示在指定软件上。

 

● 打开指定应用

 

帮助文档如下图:

顾名思义,通过本方法可打开指定应用,成功返回真,否则返回假。

注:部分手机打开时可能有权限提示或者禁止打开。

 

代码编写如下图:

直接在本方法的参数内填写一个要打开的应用包名,并判断返回值即可。

 

运行结果如下图(GIF):

 

● 打开指定文件

 

帮助文档如下图:

顾名思义,通过本方法可打开指定文件。

返回值为逻辑型,返回真表示系统内有可以打开本文件的程序,否则返回假。

参数1:填写要打开的文件路径。

参数2:填写文件类型,调用方式“常用文件类型.XXX”.

注意:如果系统中存在多个程序都可以打开本文件,则会弹出选择提示。

 

代码编写如下图:

调用本方法打开一个txt文本文件。

 

运行结果如下图(GIF):

 

● 打开指定网址
● 打开指定网址2

 

以上两个方法都是打开网址,此处讲解“打开指定网址”方法。

 

帮助文档如下图:

顾名思义,通过本方法可打开指定网址。

例如:打开火山官网直接在参数内填写“http://www.voldp.com”

注意:如果有多个浏览器会弹出选择提示。

 

代码编写如下图:

直接在参数内填写要打开的网址即可。

 

运行结果如下图(GIF):

 

● 返回桌面

 

帮助文档如下图:

调用本方法可返回系统桌面,本方法效果等同于按下Home键。

注意:并不能实现永久后台运行。

 

代码编写如下图:

直接调用本方法即可。

 

运行结果如下图(GIF):

可看到“按钮1”被点击返回桌面后,再次打开软件编辑框内容依然存在。

 

五、常用窗口类

 

● 对话框窗口
● 横向窗口
● 平板窗口
● 全屏窗口
● 透明窗口
● 纵向窗口

以上窗口模式用法一致,这里举例“对话框窗口”窗口。

帮助内容如下:

顾名思义,就是将当前“窗口”设置成“对话框风格”

 

代码编写(1):

直接将“基础类”改名“对话框窗口”即可。

 

或者也可以利用“@安卓.附加清单”属性,修改属性值为“常用窗口附加清单.对话框窗口”

设置后仅对当前窗口有效。

 

运行效果如下图:

运行后“窗口”会变成“对话框”风格显示。

 

● 安卓5无标题窗口
● 安卓5无标题白色窗口
● 安卓5全屏窗口
● 安卓5全屏窗口白色
● 安卓5对话框窗口无标题
● 安卓5对话框窗口白色无标题
● 安卓5对话框窗口白色
● 安卓5对话框窗口

以上窗口模式是通过改变“材质风格”(类似窗口皮肤)实现,此处举例“安卓5无标题白色窗口”

注意:以上窗口风格需要安卓系统5.0(即API级别21)以上才能使用.

 

帮助内容如下:

顾名思义,就是将当前“窗口”设置成“白色无标题”风格。

 

代码编写如下图:

直接将“基础类”改名“安卓5无标题白色窗口”即可。

 

运行效果如下图:

左图:“安卓5无标题白色窗口”的效果图。

右图:通过“常用窗口附加清单.无标题白色窗口”设置的无标题白色窗口效果。