【】本技术实施例涉及终端设备画面显示,尤其涉及一种动画播放方法、装置、设备以及存储介质。
背景技术
0、
背景技术:
1、为提升应用程序的交互性,或者更加直观形象展示应用程序的相关功能效果,应用程序页面会展示动画效果,在安卓(android)架构中这些动画效果目前的实现方案大多数采用android原生的帧动画实现。
2、限制于现有技术实现动画效果的方式,应用程序页面展示动画效果会占用大量内存资源,影响应用程序运行流畅度。
技术实现思路
0、
技术实现要素:
1、本技术实施例提供了一种动画播放方法、装置、设备以及存储介质,节省应用程序播放动画效果占用内存资源。
2、第一方面,本技术实施例提供一种动画播放方法,应用于电子设备,所述方法包括:针对待播放动画一次加载一帧图片执行播放操作,每播放一帧图片对已播放的图片执行一次计数操作;以一次加载一帧的方式逐次播放所述待播放动画的图片的过程中,若所述计数操作执行的次数小于所述待播放动画的图片帧数,获取所述待播放动画的目标图片进行播放;所述目标图片是上一次执行所述计数操作对应图片的下一张图片。
3、本技术实施例提出的动画播放方法,按照待播放动画中图片帧显示的顺序,一次只加载一帧图片至显示图片的对应线程,每完成一次图片帧播放,执行一次计数操作,执行计数操作的次数小于图片帧数量,可以确定未完全播放待播放动画中所有图片帧,下一步继续播放下一帧图片,执行计数操作的次数等于图片帧数量,可以确定上一次播放的图片帧是待播放动画的最后一帧图片,对待播放动画所有的所有图片帧均完成当前轮次的播放,即完成了待播放动画的播放,再根据实际情况确定停止播放图片帧或启动下一轮播放。上述过程通过比较执行计数操作的次数与图片帧数量大小关系,控制待播放动画中图片帧加载进度,以实现每次加载一帧图片至对应线程播放,相较于一次性加载所有图片帧逐帧播放的方式,节约了内存资源,保证系统运行流畅。
4、其中一种可能的实现方式中,以一次加载一帧的方式逐次播放所述待播放动画的图片的过程中,对所述计数操作执行加一操作,若所述计数操作执行的次数等于所述待播放动画的图片帧数,停止播放所述待播放动画或加载所述待播放动画中第一个图片帧,并重置所述计数操作的执行次数。
5、其中一种可能的实现方式中,针对待播放动画一次加载一帧图片执行播放操作,每播放一帧图片对已播放的图片执行一次计数操作,包括:
6、对所述待播放动画图片设置目标存储位集合;所述目标存储位集合包括分别存储所述待播放动画图片每个图片资源的多个存储位;
7、对所述目标存储位集合相邻位置设置标记位,所述标记位设置有对当前播放的图片帧进行记录的索引值;所述索引值的初始值为负1;
8、以一次加载一帧的方式逐次播放所述待播放动画的图片的过程中,若所述计数操作执行的次数小于所述待播放动画的图片帧数,获取所述待播放动画的目标图片进行播放,包括:
9、以一次加载一帧的方式逐次播放所述待播放动画的图片的过程中,对所述索引值执行加一操作,若所述索引值小于所述目标存储位集合大小,获取所述待播放动画的目标图片进行播放。
10、其中一种可能的实现方式中,所述存储位标记有播放次序,若所述计数操作执行的次数小于所述待播放动画的图片帧数,获取所述待播放动画的目标图片进行播放,包括:
11、从所述目标存储位集合中获取与所述索引值对应的播放次序对应图片帧资源,进行加载并播放。
12、其中一种可能的实现方式中,所述方法还包括:
13、对存储所述待播放动画的图片帧的存储位相邻位设置标记位;所述标记位设置有循环播放标记、对完整播放次数进行记录的当前循环次数以及预设播放次数;所述完整播放指完成对所述待播放动画的所有图片帧的加载;
14、以一次加载一帧的方式逐次播放所述待播放动画的图片的过程中,对所述计数操作执行加一操作,若所述计数操作执行的次数等于所述待播放动画的图片帧数,停止对所述待播放动画的播放或加载所述待播放动画中第一个图片帧,并重置所述计数操作的执行次数,包括:
15、以一次加载一帧的方式逐次播放所述待播放动画的图片的过程中,对所述计数操作执行加一操作,若所述计数操作执行的次数等于所述待播放动画的图片帧数,判断所述标记位是否设置循环播放标记;
16、当所述标记位设置有循环播放标记,比较所述当前循环次数与所述预设循环次数的大小;
17、当所述当前循环次数等于所述预设循环次数,停止对所述待播放动画的播放。
18、其中一种可能的实现方式中,当所述当前循环次数小于所述预设循环次数,加载所述待播放动画中第一个图片帧,并重置所述计数操作的执行次数,以及对当前循环次数进行加一操作。
19、其中一种可能的实现方式中,所述目标存储位集合存储的图片资源包括图片展示时间;获取所述待播放动画的目标图片进行播放,包括:
20、按照所述展示时间,加载所述待播放动画的目标图片进行播放。
21、其中一种可能的实现方式中,所述目标存储位集合存储的图片资源包括图片资源标识;第n次获取所述待播放动画的目标图片进行播放,包括:
22、判断加载图片的线程本地是否设置目标复用位;所述目标复用位用于存储目标图片对应bitmap对象;
23、若所述加载图片的线程本地未设置目标复用位,对所述图片资源标识进行解码,创建bitmap对象和存储所述bitmap对象的目标复用位;
24、从所述复用位根据bitmap对象创建所述drawable对象,通过imageview控件显式解码的drawable对象;
25、第n+1次获取所述待播放动画的目标图片进行播放,包括:
26、直接从所述复用位根据bitmap对象创建所述drawable对象,通过imageview控件显式解码的drawable对象。
27、第二方面,本技术实施例提供一种动画播放装置,设置在电子设备中,所述装置包括:
28、计数模块,用于针对待播放动画一次加载一帧图片执行播放操作,每播放一帧图片对已播放的图片执行一次计数操作;
29、播放模块,用于以一次加载一帧的方式逐次播放所述待播放动画的图片的过程中,若所述计数操作执行的次数小于所述待播放动画的图片帧数,获取所述待播放动画的目标图片进行播放;所述目标图片是上一次执行所述计数操作对应图片的下一张图片。
30、第三方面,本技术实施例提供一种设备,包括:至少一个处理器;以及与所述处理器通信连接的至少一个存储器,其中:所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面提供的方法。
31、第四方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面提供的方法。
32、应当理解的是,本技术实施例的第二~四方面与本技术实施例的第一方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。