Loading... 最近在看别人帖子的时候看到有人有这个需求,就是什么场景呢:我想要一打开程序就能加载一张网络图片。 那么一打开程序就加载东西,听起来是不是就有点像易语言里面的,一载入窗口就怎么怎么样啊?没错就是这样,那在火山安卓开发的时候,如何实现像易语言的 **窗口_创建完毕** 一样的效果呢? 其实很简单,在启动类的窗口处右键,点击 “添加 “启动类” 的虚拟方法” 即可。然后会弹出创建对应虚拟方法的对话框。 虚拟方法这个名词相信对一些新手朋友来说很陌生。这里稍微解释一下什么是 **虚拟方法**。虚拟方法你可以理解为是一种可以被覆盖的方法。比如程序原来定义有一种可被覆盖的虚拟方法,名字叫做 “切丝”,功能就是把菜切成丝。那么如果你要实现 “切丁” 的操作,通常来讲我们是不是将切成丝的菜换一个方向,再来一遍切丝的类似动作过程?这样就可以切成丁了。因此我们来定义一个新的类继承刚才用来切丝的类,这样他就可以访问到 “切丝” 这个方法,然后创建 “切丝” 的虚拟方法,用来切丁,由于原来的切丝方法是可被覆盖的,所以切丁可以实现类似的功能替代切丝,优化一下它要执行的动作即可。 虚拟方法创建的要求是与原方法同名、同返回值、同参数列表,官方解释是虚拟方法可以在继承类中被覆盖。 来我们说回来我们的案例。 我们可以在可以创建的虚拟方法中找到:`通知_被创建`,`通知_被启动`。 ![huolearn-day6-1.jpg](http://static.fox-9.com/uploads/2021/08/17/huolearn-day6-1.jpg!webp) ![huolearn-day6-2.jpg](http://static.fox-9.com/uploads/2021/08/17/huolearn-day6-2.jpg!webp) 仔细看一下右侧的帮助文档,可以知道被创建是指窗口 **被创建** 就会被执行,而 **被启动** 是窗口进入用户可见状态后才执行的,也就是在 **被创建** 之后。大家可以根据自己的需要来选择用哪个,添加即可。这里我们使用 **被启动** 方法来做例子吧。 创建后会添加如下代码,目前我们无需修改自动添加的任何代码,在代码的最后一行往下继续写我们要执行的动作即可。 ![huolearn-day6-3.jpg](http://static.fox-9.com/uploads/2021/08/17/huolearn-day6-3.jpg!webp) 接下来我们写一下获取网络图片的代码,使用的是火山安卓安装时自带的官方模块库:`OKHTTP网络访问类`,你需要做的是在项目名处右键,选择“配置项目所使用模块”,然后选择该模块加载进来。 ![huolearn-day6-4.jpg](http://static.fox-9.com/uploads/2021/08/17/huolearn-day6-4.jpg!webp) 然后往下写代码即可,这里我们取的是火山官网的一张二维码图片来作为网络图片加载。 ![huolearn-day6-5-e1588606229462.jpg](http://static.fox-9.com/uploads/2021/08/17/huolearn-day6-5-e1588606229462.jpg!webp) 例子里我使用的是异步访问方式,访问完成后,可以通过该类对象获取到对应的位图图片,需要通过 “位图_” 相关的接收事件来获取图片资源,也可以添加上如果获取失败的错误提示。如果你需要使用同步访问方式来立即在该命令返回值处得到访问的资源也是可以的,这样的写法我们以后可以再讲。 添加网络访问类对应的两个接收事件并撰写代码: ![huolearn-day6-6.jpg](http://static.fox-9.com/uploads/2021/08/17/huolearn-day6-6.jpg!webp) 代码通俗易懂,咱就不解释了,大家照着使用就好了。 最后咱们来看一下调试运行的效果: ![huolearn-day6-7.gif](http://static.fox-9.com/uploads/2021/08/17/huolearn-day6-7.gif!webp) 最后附上咱们的源码下载地址: <div class="hideContent">该部分仅登录用户可见</div> 最后修改:2021 年 08 月 17 日 © 允许规范转载 赞 赠人玫瑰,手留余香