CN106648602A - 页面加载方法 - Google Patents

页面加载方法 Download PDF

Info

Publication number
CN106648602A
CN106648602A CN201610907551.5A CN201610907551A CN106648602A CN 106648602 A CN106648602 A CN 106648602A CN 201610907551 A CN201610907551 A CN 201610907551A CN 106648602 A CN106648602 A CN 106648602A
Authority
CN
China
Prior art keywords
page
view
layer
user
loading method
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610907551.5A
Other languages
English (en)
Other versions
CN106648602B (zh
Inventor
葛俊鹏
王坤鹏
张鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Borui Tongyun Technology Co.,Ltd.
Original Assignee
Jiangxi Borui Tongyun Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jiangxi Borui Tongyun Technology Co Ltd filed Critical Jiangxi Borui Tongyun Technology Co Ltd
Priority to CN201610907551.5A priority Critical patent/CN106648602B/zh
Publication of CN106648602A publication Critical patent/CN106648602A/zh
Application granted granted Critical
Publication of CN106648602B publication Critical patent/CN106648602B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明实施例涉及一种页面加载方法,包括:以Viewpager为子节点获取根节点View,确定画面处理机制,并获取对于View的绘画操作的记录;调用invalidate()函数,根据绘画操作的记录生成当前页面显示数据;根据View确定ViewGroup,并且确定View或ViewGroup的父视图;对父视图层层向上循环调用,直到调用到ViewRoot,并根据循环调用的结果生成全部用户可视显示页面的映射关系;确定响应用户操作的分发事件的处理机制并加载到映射关系中;根据映射关系层层向下对显示页面进行绘制;对显示页面设置添加Animator;调用nativeShowFPS函数将绘制的结果进行显示。

Description

页面加载方法
技术领域
本发明涉及通信技术领域,尤其涉及一种页面加载方法。
背景技术
现有技术在开发、设计基于Android终端的Launcher类应用时,都基于ViewGroup进行改造,或直接改造系统原生Launcher。在处理用户左右切换页面时需要严格的处理页面移动距离,造成在页面切换时容易出错,而且在实现页面切换动画时容易出现卡顿和黑屏等现象。因此,在页面切换过程中很少使用动画效果。
发明内容
本发明的目的是针对现有技术的缺陷,提供一种页面加载方法,以Viewpager作为基础控件提出一种简单、交互友好的用户界面加载方案,能够实现页面切换中的动画效果加载,使页面加载方式更加生动,并且加载过程更加流畅。
有鉴于此,本发明实施例提供了一种页面加载方法,用户终端接收用户输入的用户终端启动指令,获取主页面基础控件Viewpager的数据;
以Viewpager为子节点获取根节点View,并根据View确定画面处理机制Canvas;所述Canvas包括矩阵对象Matrix的信息;
获取所述Matrix中存储的对于View的绘画操作的记录;
调用invalidate()函数,对当前页面进行刷新,根据所述绘画操作的记录生成当前页面显示数据;
根据View确定View的子类ViewGroup,并且根据所述invalidate()函数确定所述View或ViewGroup的父视图ParentView;
通过invalidateChild对父视图层层向上循环调用,直到调用到根视图ViewRoot,并根据循环调用的结果生成全部用户可视显示页面的映射关系;
确定响应用户操作的分发事件的处理机制,并将所述处理机制加载到所述映射关系中;
根据所述映射关系,层层向下对显示页面进行绘制;
对部分或各个显示页面设置添加Animator;
ViewRoot调用nativeShowFPS函数将所述绘制的结果canvas传递至本地层进行显示。
具体的,所述方法还包括:
接收用户在所述用户终端输入的页面切换操作指令;
根据所述页面切换操作指令生成相应的第一分发事件,并根据所述第一分发事件的处理机制切换显示页面。
具体的,在所述切换显示页面的过程中,根据Viewpager获取相应的Animator,从而以动画方式加载显示页面。
具体的,所述用户终端接收用户输入的用户终端启动指令具体为:
Android终端接收用户输入的启动指令启动桌面启动器Launcher。
本发明实施例提供的页面加载方法,以Viewpager作为基础控件提出一种简单、交互友好的用户界面加载方案,能够实现页面切换中的动画效果加载,使页面加载方式更加生动,并且加载过程更加流畅。
附图说明
图1为本发明实施例提供的页面加载方法的流程图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
本发明实施例提供的方法适用于Android系统的用户终端,用于解决页面加载不流畅,容易卡顿,且无法实现动画加载的问题。
图1为本发明实施例提供的页面加载方法流程图,如图1所示,包括:
步骤101,用户终端接收用户输入的用户终端启动指令,获取主页面基础控件Viewpager的数据;
具体的,基于Android终端的桌面启动器Launcher启动时先加载主页面基础控件Viewpager的相关数据并填充画面。
步骤102,以Viewpager为子节点获取根节点View,并根据View确定画面处理机制Canvas;
具体的,由于Viewpager的最终父类为View,而View类包含Surface,而Surface中又包含CompatibleCanvas,且CompatibleCanvas继承自Canvas。这里所说的Canvas属于java.awt.Canvas包下。
步骤103,获取Matrix中存储的对于View的绘画操作的记录;
具体的,Canvas中包含一个矩阵对象Matrix。
这里所说的Matrix就是一块内存区域,针对View的各种绘画操作都保存在此内存区域中。
步骤104,调用invalidate()函数,对当前页面进行刷新,根据绘画操作的记录生成当前页面显示数据;
步骤105,根据View确定View的子类ViewGroup,并且根据invalidate()函数确定View或ViewGroup的父视图ParentView;
具体的,界面请求绘制调用invalidate(),此函数会找到当前View或Viewgroup的ParentView,并且调用父视图的invalidateChild(this,r)。
步骤106,通过invalidateChild对父视图层层向上循环调用,直到调用到根视图ViewRoot,并根据循环调用的结果生成全部用户可视显示页面的映射关系;
具体的,invalidateChild会循环调用父视图的invalidateChildInParent(),由此可以层层向上层视图调用,直到调用到根视图ViewRoot。ViewRoot的invalidateChildInParent调用invalidateChild,然后发送消息让ViewRoot进行绘制。其中,绘制代码在handleMessage()中的case DO_TRAVERSAL中调用了performTraversals()。
步骤107,确定响应用户操作的分发事件的处理机制,将处理机制加载到映射关系中,并且根据映射关系,层层向下对显示页面进行绘制;
具体的,在ViewGroup的dispatchDraw中会调用drawChild函数。drawChild根据子View的私有标志位PrivateFlags来调用子类的draw()或者dispatchDraw(canvas)。由此实现了层层向下绘制,直到最基本的View。View的dispatchDraw是一个抽象函数,绘制过程到此结束。
步骤108,对部分或各个显示页面设置添加Animator;
具体的,可以通过添加Animator设置页面加载的动画效果,比如立体效果、水波纹效果等等,通过Animator参数设置可以设置不同的动画效果。
步骤109,ViewRoot调用nativeShowFPS函数将绘制的结果canvas传递至本地层进行显示。
当用户在使用中需要触发页面切换时,向用户终端输入页面切换操作指令,用户终端根据页面切换操作指令生成相应的第一分发事件,并根据第一分发事件的处理机制切换显示页面,从而实现页面的切换。在切换显示页面的过程中,可以根据Viewpager获取相应的Animator,从而以动画方式加载显示页面。
在具体的实现过程中,用户触发页面左右滑动事件时,前述Surface开始响应页面刷新,每个Surface通常对应两个buffer,一个front buffer,一个back buffer。其中,backbuffer就是canvas绘图时对应的bitmap。因此,绘画总是在back buffer上,需要更新时,则将back buffer和front buffer互换。每个surface又对应一个layer,SurfaceFlinger负责将各个layer的front buffer合成(composite)绘制到屏幕上。
同时在这个流程中,可以很方便的添加Animator到Viewpager并展现为在页面左右切换时的动画效果,方便处理且不容易出错和出现黑屏等异常情况。
本发明实施例提供的页面加载方法,以Viewpager作为基础控件提出一种简单、交互友好的用户界面加载方案,能够实现页面切换中的动画效果加载,使页面加载方式更加生动,并且加载过程更加流畅。
本发明实施例提供的方法,在开发、设计基于Android终端的Launcher类应用时,相对于现有技术缺乏多样性、容易出错、黑屏等异常情况都有了很大程度上的优化,并且更加方便的加入动画,处理方便,为提升用户体验带来技术成本上的节约。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (4)

1.一种页面加载方法,其特征在于,所述方法包括:
用户终端接收用户输入的用户终端启动指令,获取主页面基础控件Viewpager的数据;
以Viewpager为子节点获取根节点View,并根据View确定画面处理机制Canvas;所述Canvas包括矩阵对象Matrix的信息;
获取所述Matrix中存储的对于View的绘画操作的记录;
调用invalidate()函数,对当前页面进行刷新,根据所述绘画操作的记录生成当前页面显示数据;
根据View确定View的子类ViewGroup,并且根据所述invalidate()函数确定所述View或ViewGroup的父视图ParentView;
通过invalidateChild对父视图层层向上循环调用,直到调用到根视图ViewRoot,并根据循环调用的结果生成全部用户可视显示页面的映射关系;
确定响应用户操作的分发事件的处理机制,并将所述处理机制加载到所述映射关系中;
根据所述映射关系,层层向下对显示页面进行绘制;
对部分或各个显示页面设置添加Animator;
ViewRoot调用nativeShowFPS函数将所述绘制的结果canvas传递至本地层进行显示。
2.根据权利要求1所述的页面加载方法,其特征在于,所述方法还包括:
接收用户在所述用户终端输入的页面切换操作指令;
根据所述页面切换操作指令生成相应的第一分发事件,并根据所述第一分发事件的处理机制切换显示页面。
3.根据权利要求2所述的页面加载方法,其特征在于,在所述切换显示页面的过程中,根据Viewpager获取相应的Animator,从而以动画方式加载显示页面。
4.根据权利要求1所述的页面加载方法,其特征在于,所述用户终端接收用户输入的用户终端启动指令具体为:
Android系统的终端接收用户输入的启动指令启动桌面启动器Launcher。
CN201610907551.5A 2016-10-18 2016-10-18 页面加载方法 Active CN106648602B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610907551.5A CN106648602B (zh) 2016-10-18 2016-10-18 页面加载方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610907551.5A CN106648602B (zh) 2016-10-18 2016-10-18 页面加载方法

Publications (2)

Publication Number Publication Date
CN106648602A true CN106648602A (zh) 2017-05-10
CN106648602B CN106648602B (zh) 2020-01-10

Family

ID=58856904

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610907551.5A Active CN106648602B (zh) 2016-10-18 2016-10-18 页面加载方法

Country Status (1)

Country Link
CN (1) CN106648602B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108549534A (zh) * 2018-03-02 2018-09-18 惠州Tcl移动通信有限公司 图形用户界面重绘方法、终端设备及计算机可读存储介质
CN111127602A (zh) * 2019-12-27 2020-05-08 珠海金山网络游戏科技有限公司 一种基于ngui的动画制作方法和装置
CN111309583A (zh) * 2018-12-11 2020-06-19 网易(杭州)网络有限公司 界面过度绘制检测方法和装置
CN111459581A (zh) * 2019-01-22 2020-07-28 阿里巴巴集团控股有限公司 页面切换方法、装置、电子设备及计算机可读介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
网友: "app引导页(背景图片切换加各个页面动画效果)", 《HTTPS://WWW.CNBLOGS.COM/YISHAOCHU/P/5078577.HTML》 *
罗升阳: "Android应用程序窗口(Activity)的视图对象(View)的创建过程分析", 《HTTPS://BLOG.CSDN.NET/LUOSHENGYANG/ARTICLE/DETAILS/8245546》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108549534A (zh) * 2018-03-02 2018-09-18 惠州Tcl移动通信有限公司 图形用户界面重绘方法、终端设备及计算机可读存储介质
US11461116B2 (en) 2018-03-02 2022-10-04 Huizhou Tcl Mobile Communication Co., Ltd. Graphical user interface redrawing method. Terminal device and computer readable storage medium
CN111309583A (zh) * 2018-12-11 2020-06-19 网易(杭州)网络有限公司 界面过度绘制检测方法和装置
CN111309583B (zh) * 2018-12-11 2023-07-11 网易(杭州)网络有限公司 界面过度绘制检测方法、装置、介质及计算设备
CN111459581A (zh) * 2019-01-22 2020-07-28 阿里巴巴集团控股有限公司 页面切换方法、装置、电子设备及计算机可读介质
CN111459581B (zh) * 2019-01-22 2024-04-16 阿里巴巴集团控股有限公司 页面切换方法、装置、电子设备及计算机可读介质
CN111127602A (zh) * 2019-12-27 2020-05-08 珠海金山网络游戏科技有限公司 一种基于ngui的动画制作方法和装置

Also Published As

Publication number Publication date
CN106648602B (zh) 2020-01-10

Similar Documents

Publication Publication Date Title
US9754018B2 (en) Rendering interpreter for visualizing data provided from restricted environment container
US8627217B2 (en) Window display system, window display method, program development support device, and server device
CN106648602A (zh) 页面加载方法
CN104704468B (zh) Web应用程序的跨系统安装
CN106126215A (zh) 业务规则脚本生成方法及装置
CN109840115A (zh) 一种Android系统中RecyclerView分页加载方法及装置
US7603624B2 (en) System and method for styling content in a graphical user interface control
CN105511873A (zh) 用户界面控件展示方法及装置
CN103617070A (zh) 虚拟机迁移方法及装置
CN111782192B (zh) 一种混合模式开发移动办公系统的方法
JP6750124B2 (ja) 端末装置、ui拡張方法及びui拡張プログラム
WO2015184736A1 (zh) 一种触屏设备背景图变换的方法及终端
CN107678744A (zh) 应用控件样式自定义方法、装置以及计算机可读存储介质
US7447993B2 (en) System and method for displaying a user interface object using an associated style
CN108021366B (zh) 界面动画实现方法、装置、电子设备、存储介质
WO2019080665A1 (zh) 视图显示方法、装置、设备及存储介质
CN109032951A (zh) 一种检测客户端运行OpenGL版本的方法、系统、服务器及存储介质
CN116610397A (zh) 一种动态新增图元的方法及系统
CN111078785A (zh) 一种数据可视化展示的方法、装置、电子设备及存储介质
CN114237795B (zh) 终端界面显示方法、装置、电子设备及可读存储介质
CN109426499A (zh) 一种web页面扩充方法及装置
US10671412B1 (en) Fast cloning for background processes in scripting environments
CN111124386B (zh) 基于Unity的动画事件处理方法、装置、设备和存储介质
CN114090925A (zh) 一种视觉类主题的切换方法、装置、电子设备及存储介质
CN106446350A (zh) 设计类平台的族类型参数修改方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200915

Address after: 100020 Beijing, East Third Ring Road, North Road, a building, floor 1702, room 17, room 26

Patentee after: Beijing Borui Tongyun Technology Co.,Ltd.

Address before: 330000 Jiangxi province Nanchang City Airport Economic Zone Confucianism Le Hu Street No. 399

Patentee before: JIANGXI BORUITONGYUN TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
CB03 Change of inventor or designer information

Inventor after: You Fenglei

Inventor after: Li Jingna

Inventor after: Ge Junpeng

Inventor after: Wang Kunpeng

Inventor after: Zhang Peng

Inventor before: Ge Junpeng

Inventor before: Wang Kunpeng

Inventor before: Zhang Peng

CB03 Change of inventor or designer information