本发明涉及显示,尤其涉及一种基于android多窗口分屏ui自适应方法、装置、计算机设备及存储介质。
背景技术:
1、在目前android系统中,应用可以通过分屏按钮实现将当前屏幕分成两部分,分别显示两个应用的界面。因为分屏后应用的显示区域发生了改变,而应用的ui一般都是按照分屏前全屏显示区域进行显示的,所以就需要对分屏后的显示区域进行ui的适配。
2、一般的分屏应用界面ui适配利用控件本身的测量模式方案只做到了控件元素本身是占满显示的时候才会跟随分屏区域的变化自适应占满分屏后的区域,如果当前控件元素一开始不是占满显示的话就无法跟随分屏后的区域动态调整控件元素的显示内容大小。
3、在目前的android多窗口分屏实现中,应用分屏后的界面ui无法做到自适应当前的屏幕显示区域,使得分屏后的应用界面ui无法保持一致性。
技术实现思路
1、本发明实施例的目的在于提出一种基于android多窗口分屏ui自适应方法、装置、计算机设备及存储介质,以解决在目前的android多窗口分屏实现中,应用分屏后的界面ui无法做到自适应当前的屏幕显示区域,使得分屏后的应用界面ui无法保持一致性的问题。
2、为了解决上述技术问题,本发明提供一种基于android多窗口分屏ui自适应方法,采用了如下所述的技术方案,包括:
3、获取控件元素原始宽度与原始高度、屏幕宽度与屏幕高度;
4、实时判断当前是否有屏幕分屏操作;
5、如果判断当前有屏幕分屏操作,则获取当前分屏显示的宽度区域大小及当前分屏显示的高度区域大小;
6、递归遍历根控件及其子控件,计算根控件及其子控件的分屏后显示宽度与显示高度,分屏后显示宽度为原始宽度除以屏幕宽度再乘以当前分屏显示的宽度区域大小,分屏后显示高度为原始高度除以屏幕高度再乘以当前分屏显示的高度区域大小;
7、按照分屏后的显示宽度与显示高度,对所述根控件及其子控件进行显示。
8、优选地,所述获取控件元素原始宽度与原始高度、屏幕宽度与屏幕高度的步骤具体还包括:
9、采用递归方法saveviewinitialvalue对控件的原始宽高进行采集;
10、通过当前屏幕的displaymetrics对象来获取当前屏幕的宽和高。
11、优选地,所述实时判断当前是否有屏幕分屏操作的步骤具体包括:
12、获取当前是否处于分屏状态;
13、动态监听获取当前是否处于分屏状态。
14、优选地,所述如果判断当前有屏幕分屏操作,则获取当前分屏显示的宽度区域大小及当前分屏显示的高度区域大小的步骤具体包括:
15、如果当前有分屏操作,系统通过回调onconfigurationchanged函数获取分屏后的屏幕宽度区域和屏幕高度区域大小;
16、如果回调onconfigurationchanged函数获取分屏后的屏幕宽度区域和屏幕高度区域大小失败,则通过拿到当前屏幕的displaymetrics对象来获取当前屏幕的宽和高。
17、优选地,所述递归遍历根控件及其子控件,计算根控件及其子控件的分屏后显示宽度与显示高度,分屏后显示宽度为原始宽度除以屏幕宽度再乘以当前分屏显示的宽度区域大小,分屏后显示高度为原始高度除以屏幕高度再乘以当前分屏显示的高度区域大小的步骤具体还包括:
18、在分屏后通知的onconfigurationchanged方法中通过递归方法updateview(viewgroup parent,int screenwidthdp,int screenheightdp)处理计算控件宽度和高度;
19、计算根控件及其子控件的分屏后显示宽度与显示高度。
20、优选地,所述按照分屏后的显示宽度与显示高度,对所述根控件及其子控件进行显示的步骤具体还包括:
21、根据updateview方法计算后的控件宽度和高度,修改控件的layoutparams布局参数中的width和height值;
22、修改宽高后,触发控件的大小测量measure,重新绘制draw,以及布局调整layout。
23、优选地,在所述按照分屏后的显示宽度与显示高度,对所述根控件及其子控件进行显示的步骤之后,具体还包括:
24、对正在适配的view进行内容虚化处理。
25、为了解决上述技术问题,本发明还提供一种基于android多窗口分屏ui自适应装置,采用了如下所述的技术方案,包括:
26、第一获取模块,用于获取控件元素原始宽度与原始高度、屏幕宽度与屏幕高度;
27、判断模块,用于实时判断当前是否有屏幕分屏操作;
28、第二获取模块,用于如果判断当前有屏幕分屏操作,则获取当前分屏显示的宽度区域大小及当前分屏显示的高度区域大小;
29、计算模块,用于递归遍历根控件及其子控件,计算根控件及其子控件的分屏后显示宽度与显示高度,分屏后显示宽度为原始宽度除以屏幕宽度再乘以当前分屏显示的宽度区域大小,分屏后显示高度为原始高度除以屏幕高度再乘以当前分屏显示的高度区域大小;
30、显示模块,用于按照分屏后的显示宽度与显示高度,对所述根控件及其子控件进行显示。
31、为了解决上述技术问题,本发明还提供一种计算机设备,采用了如下所述的技术方案,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现上述的基于android多窗口分屏ui自适应方法的步骤。
32、为了解决上述技术问题,本发明还提供一种计算机可读存储介质,采用了如下所述的技术方案,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现上述的基于android多窗口分屏ui自适应方法的步骤。
33、与现有技术相比,本发明主要有以下有益效果:通过实时检测当前是否有分屏操作,如果有则动态对界面全部控件元素自适应当前分屏区域的内容显示,减少分屏应用的界面ui适配工作量,提升应用分屏功能实用性,确保应用界面在分屏前后的视觉一致性,提高用户体验满意度。
1.一种基于android多窗口分屏ui自适应方法,其特征在于,包括下述步骤:
2.根据权利要求1所述的基于android多窗口分屏ui自适应方法,其特征在于,所述获取控件元素原始宽度与原始高度、屏幕宽度与屏幕高度的步骤具体还包括:
3.根据权利要求1所述的基于android多窗口分屏ui自适应方法,其特征在于,所述实时判断当前是否有屏幕分屏操作的步骤具体包括:
4.根据权利要求1所述的基于android多窗口分屏ui自适应方法,其特征在于,所述如果判断当前有屏幕分屏操作,则获取当前分屏显示的宽度区域大小及当前分屏显示的高度区域大小的步骤具体包括:
5.根据权利要求1所述的基于android多窗口分屏ui自适应方法,其特征在于,所述递归遍历根控件及其子控件,计算根控件及其子控件的分屏后显示宽度与显示高度,分屏后显示宽度为原始宽度除以屏幕宽度再乘以当前分屏显示的宽度区域大小,分屏后显示高度为原始高度除以屏幕高度再乘以当前分屏显示的高度区域大小的步骤具体还包括:
6.根据权利要求1所述的基于android多窗口分屏ui自适应方法,其特征在于,所述按照分屏后的显示宽度与显示高度,对所述根控件及其子控件进行显示的步骤具体还包括:
7.根据权利要求1所述的基于android多窗口分屏ui自适应方法,其特征在于,在所述按照分屏后的显示宽度与显示高度,对所述根控件及其子控件进行显示的步骤之后,具体还包括:
8.一种基于android多窗口分屏ui自适应装置,其特征在于,包括:
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如权利要求1至7中任一项所述的基于android多窗口分屏ui自适应方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1至7中任一项所述的基于android多窗口分屏ui自适应方法的步骤。