CN110221759A - 一种元素拖拽方法、装置、存储介质及交互智能平板 - Google Patents
一种元素拖拽方法、装置、存储介质及交互智能平板 Download PDFInfo
- Publication number
- CN110221759A CN110221759A CN201910466388.7A CN201910466388A CN110221759A CN 110221759 A CN110221759 A CN 110221759A CN 201910466388 A CN201910466388 A CN 201910466388A CN 110221759 A CN110221759 A CN 110221759A
- Authority
- CN
- China
- Prior art keywords
- dragging
- application
- object element
- data
- view
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0486—Drag-and-drop
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04883—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请实施例公开了一种元素拖拽方法、装置、存储介质及交互智能平板,所述方法包括:在安卓系统中,当监听到针对第一应用中的目标元素输入的拖拽操作触发的拖拽事件时,获取所述目标元素对应的拖拽数据;获取所述拖拽事件对应的拖拽轨迹,当监听到所述拖拽轨迹的拖拽终点位于第二应用中时,将所述拖拽数据移动至所述第二应用;基于所述拖拽数据获取所述目标元素,并在所述第二应用中展示所述目标元素。因此,采用本申请实施例,可以在安卓系统中将从一个应用中的目标元素拖拽至另一个应用中,实现元素的跨应用拖拽及展示,且元素类型丰富多样,适用场景多。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种元素拖拽方法、装置、存储介质及交互智能平板。
背景技术
随着信息社会的发展,各类智能显示设备在生活或者工作中的应用频率越来越高,用户可以通过智能显示设备进行网页浏览、聊天、编辑文件等各种操作。
在智能显示设备上进行拖拽操作是一种常见的人机交互方式,浏览器网页中、word文本中、txt文本中,聊天工具的对话框中、文件管理器等都可以进行拖拽操作。所谓的拖拽操作是指用户在应用的显示界面上选中一个元素(如文字)后,并按住选中的元素移动一定距离,当放开选中的元素后,拖拽结束,该元素就停留在放开时的位置,通过拖拽操作可以很方便地将元素移动到指定位置。但这种元素拖拽仅局限于PC系统中,在安卓系统中却无法实现应用的拖拽操作。
发明内容
本申请实施例提供了一种元素拖拽方法、装置、存储介质及交互智能平板,可以实现元素在安卓系统中的跨应用拖拽。所述技术方案如下:
第一方面,本申请实施例提供了一种元素拖拽方法,所述方法包括:
在安卓系统中,当监听到针对第一应用中的目标元素输入的拖拽操作触发的拖拽事件时,获取所述目标元素对应的拖拽数据;
获取所述拖拽事件对应的拖拽轨迹,当监听到所述拖拽轨迹的拖拽终点位于第二应用中时,将所述拖拽数据移动至所述第二应用;
基于所述拖拽数据获取所述目标元素,并在所述第二应用中展示所述目标元素。
可选的,所述当监听到针对第一应用中的目标元素输入的拖拽操作触发的拖拽事件时,获取所述目标元素对应的拖拽数据,包括:
当监听到针对第一应用中的目标元素输入的拖拽操作触发的拖拽事件时,获取所述目标元素对应的拖拽数据,并生成拖拽视图;
将所述目标元素添加至所述拖拽视图中;
所述获取所述拖拽事件对应的拖拽轨迹,包括:
获取所述拖拽事件对应的拖拽轨迹,将所述拖拽视图沿着所述拖拽轨迹同步移动;
所述当监听到所述拖拽轨迹的拖拽终点位于第二应用中时,将所述拖拽数据移动至所述第二应用,包括:
当监听到所述拖拽轨迹的拖拽终点位于第二应用中时,将所述拖拽数据移动至所述第二应用,并隐藏所述拖拽视图。
可选的,所述将所述目标元素添加至所述拖拽视图中,包括:
获取所述目标元素的显示高度、显示宽度以及中心点坐标;
按照所述显示高度、所述显示宽度以及所述中心点坐标将所述目标元素添加至所述拖拽视图中。
可选的,所述获取所述目标元素对应的拖拽数据,包括:
获取所述目标元素对应的源数据;
对所述源数据进行解析,获取所述目标元素对应的预设格式的拖拽数据。
可选的,所述获取所述目标元素对应的拖拽数据之后,还包括:
对所述拖拽数据进行序列化处理;
所述将所述拖拽数据移动至所述第二应用,包括:
将序列化处理后的所述拖拽数据移动至所述第二应用。
可选的,所述将序列化处理后的所述拖拽数据移动至所述第二应用之后,还包括:
对序列化处理后的所述拖拽数据进行反序列化处理;
所述基于所述拖拽数据获取所述目标元素,包括:
基于反序列化处理后的所述拖拽数据获取所述目标元素。
第二方面,本申请实施例提供了一种元素拖拽方法,所述方法包括:
接收元素选择指令,所述元素选择指令用于选择第一应用中的目标元素;
在所述目标元素处生成拖拽视图,将目标元素添加至所述拖拽视图中;
显示添加了所述目标元素的拖拽视图;
接收元素拖拽指令,所述元素拖拽指令用于将所述拖拽视图从第一应用中移动至第二应用中;
显示所述拖拽视图的移动轨迹,所述移动轨迹为所述拖拽指令对应的拖拽轨迹;
接收拖拽结束指令,所述拖拽结束指令用于控制在所述第二应用中结束拖拽所述拖拽视图;
隐藏所述拖拽视图,并在所述第二应用中显示所述目标元素。
可选的,所述显示添加了所述目标元素的拖拽视图之后,还包括:
获取所述目标元素的拖拽数据;
所述在所述第二应用中显示所述目标元素,包括:
将所述拖拽数据移动至所述第二应用中,基于所述第二应用获取目标元素;
在所述第二应用中显示所述目标元素。
可选的,所述在所述第二应用中显示所述目标元素,包括:
在所述第二应用中播放所述目标元素。
可选的,所述接收针对第一应用中目标元素的选择指令之前,还包括:
接收第一应用启动指令和第二应用启动指令;
显示第一应用和第二应用。
可选的,所述接收拖拽结束指令之后,还包括:
判断是否拖拽成功;
若拖拽失败,则显示所述拖拽视图的返回轨迹,所述返回轨迹用于控制所述拖拽视图沿着所述拖拽轨迹返回至所述第一应用中。
可选的,所述将目标元素添加至所述拖拽视图中,包括:
获取所述目标元素的显示尺寸,将所述目标元素按照所述显示尺寸添加到所述拖拽视图中。
第三方面,本申请实施例提供了一种元素拖拽装置,所述装置包括:
数据获取模块,用于在安卓系统中,当监听到针对第一应用中的目标元素输入的拖拽操作触发的拖拽事件时,获取所述目标元素对应的拖拽数据;
数据移动模块,用于获取所述拖拽事件对应的拖拽轨迹,当监听到所述拖拽轨迹的拖拽终点位于第二应用中时,将所述拖拽数据移动至所述第二应用;
元素展示模块,用于基于所述拖拽数据获取所述目标元素,并在所述第二应用中展示所述目标元素。
可选的,所述数据获取模块,包括:
数据获取单元,用于当监听到针对第一应用中的目标元素输入的拖拽操作触发的拖拽事件时,获取所述目标元素对应的拖拽数据,并生成拖拽视图;
元素添加单元,用于将所述目标元素添加至所述拖拽视图中;
所述数据移动模块,具体用于:
获取所述拖拽事件对应的拖拽轨迹,将所述拖拽视图沿着所述拖拽轨迹同步移动;
当监听到所述拖拽轨迹的拖拽终点位于第二应用中时,将所述拖拽数据移动至所述第二应用,并隐藏所述拖拽视图。
可选的,所述元素添加单元,具体用于:
获取所述目标元素的显示高度、显示宽度以及中心点坐标;
按照所述显示高度、所述显示宽度以及所述中心点坐标将所述目标元素添加至所述拖拽视图中。
可选的,所述数据获取模块,包括:
源数据获取单元,用于获取所述目标元素对应的源数据;
拖拽数据获取单元,用于对所述源数据进行解析,获取所述目标元素对应的预设格式的拖拽数据。
可选的,所述装置还包括:
序列化模块,用于对所述拖拽数据进行序列化处理;
所述数据移动模块,具体用于:
将序列化处理后的所述拖拽数据移动至所述第二应用。
可选的,所述装置还包括:
反序列化模块,用于对序列化处理后的所述拖拽数据进行反序列化处理;
所述元素展示模块,具体用于:
基于反序列化处理后的所述拖拽数据获取所述目标元素。
第四方面,本申请实施例提供了一种元素拖拽装置,所述装置包括:
选择指令接收模块,用于接收元素选择指令,所述元素选择指令用于选择第一应用中的目标元素;
元素添加模块,用于在所述目标元素处生成拖拽视图,将目标元素添加至所述拖拽视图中;
视图显示模块,用于显示添加了所述目标元素的拖拽视图;
拖拽指令接收模块,用于接收元素拖拽指令,所述元素拖拽指令用于将所述拖拽视图从第一应用中移动至第二应用中;
移动轨迹显示模块,用于显示所述拖拽视图的移动轨迹,所述移动轨迹为所述拖拽指令对应的拖拽轨迹;
结束指令接收模块,用于接收拖拽结束指令,所述拖拽结束指令用于控制在所述第二应用中结束拖拽所述拖拽视图;
元素显示模块,用于隐藏所述拖拽视图,并在所述第二应用中显示所述目标元素。
可选的,所述装置还包括:
数据获取模块,用于获取所述目标元素的拖拽数据;
所述元素显示模块,具体用于:
将所述拖拽数据移动至所述第二应用中,基于所述第二应用获取目标元素;
在所述第二应用中显示所述目标元素。
可选的,所述数据获取模块,具体用于:
在所述第二应用中播放所述目标元素。
可选的,所述装置还包括:
启动指令接收模块,用于接收第一应用启动指令和第二应用启动指令;
应用显示模块,用于显示第一应用和第二应用。
可选的,所述装置还包括:
拖拽判断模块,用于判断是否拖拽成功;
返回轨迹显示模块,用于若拖拽失败,则显示所述拖拽视图的返回轨迹,所述返回轨迹用于控制所述拖拽视图沿着所述拖拽轨迹返回至所述第一应用中。
可选的,所述元素添加模块,具体用于:
获取所述目标元素的显示尺寸,将所述目标元素按照所述显示尺寸添加到所述拖拽视图中。
第五方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行上述的方法步骤。
第六方面,本申请实施例提供一种交互智能平板,可包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行上述的方法步骤。
本申请一些实施例提供的技术方案带来的有益效果至少包括:
本申请实施例的方案在执行时,在安卓系统中,当监听到针对第一应用中的目标元素输入的拖拽操作触发的拖拽事件时,获取所述目标元素对应的拖拽数据,再获取所述拖拽事件对应的拖拽轨迹,当监听到所述拖拽轨迹的拖拽终点位于第二应用中时,将所述拖拽数据移动至所述第二应用,从而可以基于所述拖拽数据获取所述目标元素,并在所述第二应用中进行展示。可以在安卓系统中将从一个应用中的目标元素拖拽至另一个应用中,实现元素的跨应用拖拽及展示,且元素类型丰富多样,适用场景多。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种实施场景示意图;
图2是本申请实施例提供的一种应用以窗口模式进行显示的界面示意图;
图3是本申请实施例提供的一种应用以分屏模式进行显示的界面示意图;
图4是本申请实施例提供的一种应用以画中画模式进行显示的界面示意图;
图5是本申请实施例提供的一种元素拖拽方法的流程示意图;
图6是本申请实施例提供的一种元素拖拽方法的流程示意图;
图7是本申请实施例提供的一种拖拽视图生成效果的举例示意图;
图8是本申请实施例提供的一种将目标元素在拖拽视图上展示的效果示意图;
图9a是本申请实施例提供的一种拖拽视图随拖拽轨迹移动的举例示意图;
图9b是本申请实施例提供的一种拖拽视图随拖拽轨迹移动的举例示意图;
图10是本申请实施例提供的一种拖拽视图在拖拽终点隐藏的效果示意图;
图11是本申请实施例提供的一种目标对象在第二应用中的展示效果示意图;
图12是本申请实施例提供的一种元素拖拽方法的流程示意图;
图13是本申请实施例提供的一种元素拖拽装置的结构示意图;
图14是本申请实施例提供的一种数据获取模块的结构示意图;
图15是本申请实施例提供的一种数据获取模块的结构示意图;
图16是本申请实施例提供的一种元素拖拽装置的结构示意图;
图17是本申请实施例提供的一种元素拖拽装置的结构示意图;
图18是本申请实施例提供的一种元素拖拽装置的结构示意图;
图19是本申请实施例提供的一种交互智能平板的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例方式作进一步地详细描述。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
请参见图1,为本申请实施例提供的一种实施场景的示意图。如图1所示,所述系统架构可以包括终端,在终端上设置有显示屏,并安装第一应用和第二应用,开启第一应用和第二应用后,第一应用以及第二应用显示在终端的显示屏的当前显示界面,第一应用和第二应用可以显示为窗口模式,也可以显示为分屏模式或画中画模式等,只要两应用在同一显示界面同时显示即可。两应用的显示窗口可以不重叠,也可以部分重叠。
其中,窗口模式,是指每个应用以单独的窗口进行显示的模式,如图2所示。
分屏模式,是指将显示屏以1:1或1:2或2:1等各比例分成两部分或多部分,每部分显示一个应用,且各应用之间互不重叠的模式,如图3所示。
画中画模式,是指一个应用以全屏模式显示,另一个应用在该全屏窗口上以一个小窗口的模式进行显示。如图4所示。
所述第一应用可以为任一应用,所述第二应用可以为除第一应用以外的任一应用。
其中,所述终端包括但不限于:个人电脑、交互智能平板、手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备等。在不同的网络中用户终端可以叫做不同的名称,例如:用户设备、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置、蜂窝电话、无绳电话、个人数字处理(personal digital assistant,PDA)、5G网络或未来演进网络中的终端设备等。
为描述方便,本申请实施例以终端为交互智能平板为例进行说明。
交互智能平板的硬件部分由显示模组、智能处理系统(包括控制器)等部分所构成,由整体结构件结合到一起,同时也由专用的软件系统作为支撑,其中显示模组包括显示屏和背光灯组件,其中显示屏包括透明电导层和液晶层等。
显示屏,在本说明书的实施例中,是指触摸屏、触控屏、触控面板,是一种感应式液晶显示装置,当接触了屏幕上的图形按钮时,屏幕上的触觉反馈系统可根据预先编程的程式驱动各种连接装置,可用以取代机械式的按钮面板,并借由液晶显示画面制造出生动的影音效果。从技术原理来区别触摸屏,可以分为五个基本种类;矢量压力传感技术触摸屏、电阻技术触摸屏、电容技术触摸屏、红外线技术触摸屏、表面声波技术触摸屏。按照触摸屏的工作原理和传输信息的介质,可以把触摸屏分为四个种类:电阻式、电容感应式、红外线式以及表面声波式。
当用户用手指或触控笔触摸屏幕时,将该点坐标定位,从而实现对智能处理系统的控制,然后随着智能处理系统内置的软件来实现不同的功能应用。
本申请实施例中,交互智能平板的显示屏显示某个界面与交互智能平板的显示模组显示该界面的含义是相同的。
在本申请中所提到的“屏幕”、“大屏”均指智能交互平板的显示屏;智能交互平板显示某个界面是指智能交互平板的显示屏显示该界面。
如图1所示,当交互智能平板的安卓系统监听到针对第一应用中的目标元素输入的拖拽操作触发的拖拽事件时,获取所述目标元素对应的拖拽数据;
其中,所述目标元素是指在第一应用中所显示的对象,可理解为第一应用中可拖拽的视图。所述目标元素可以包括文件、图片、音频、视频、链接、文字等对象。
对于目标元素,包括源数据,即目标元素在第一应用中的显示位置、显示高度、显示宽度、元素的数据类型、元素色彩、元素存储路径以及元素来源的应用包名等信息。
而针对目标元素的拖拽数据则是指预设格式的数据,可理解为对源数据进行解析,并从源数据中得到预设格式的相关数据。如预设格式可以包括但不限于以下几种:数据类型、存储路径以及数据来源的应用包名。
可选的,交互操作智能平板还可以对所述拖拽数据进行序列化处理,从而将拖拽数据转换为适合跨应用传递的格式。
可选的,当交互智能平板监听到针对第一应用中的目标元素输入的拖拽事件的同时,同步生成拖拽视图。
所述拖拽视图用于承载并显示目标元素。
其中,交互智能平板获取所述目标元素的显示高度、显示宽度以及中心点坐标,并按照所述显示高度、所述显示宽度以及所述中心点坐标将所述目标元素添加至所述拖拽视图中。
当用户按住目标元素进行拖拽时,交互智能平板获取所述拖拽事件对应的拖拽轨迹,并同步移动拖拽视图;
当监听到所述拖拽轨迹的拖拽终点位于第二应用中时,交互智能平板将所述拖拽数据移动至所述第二应用,并隐藏拖拽视图。
可选的,当监听到所述拖拽轨迹的拖拽终点位于第二应用之外时,所述拖拽视图返回到第一应用。
可选的,交互智能平板对序列化处理后的所述拖拽数据进行反序列化处理,以得到拖拽数据。
将拖拽数据移动至所述第二应用之后,交互智能平板基于所述拖拽数据获取所述目标元素,并在所述第二应用中展示所述目标元素。
其中,交互智能平板可基于拖拽路径获取目标元素。
本申请实施例的方案在执行时,在安卓系统中,当监听到针对第一应用中的目标元素输入的拖拽操作触发的拖拽事件时,获取所述目标元素对应的拖拽数据,再获取所述拖拽事件对应的拖拽轨迹,当监听到所述拖拽轨迹的拖拽终点位于第二应用中时,将所述拖拽数据移动至所述第二应用,从而可以基于所述拖拽数据获取所述目标元素,并在所述第二应用中进行展示。可以在安卓系统中,将从一个应用中的目标元素拖拽至另一个应用中,实现元素的跨应用拖拽及展示,且元素类型丰富多样,适用场景多。
下面将结合附图5-附图12,对本申请实施例提供的元素拖拽方法进行详细介绍。该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的元素拖拽装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。
请参见图5,为本申请实施例提供的一种元素拖拽方法的流程示意图。如图1所示,本申请实施例的所述方法可以包括以下步骤:
S101,在安卓系统中,当监听到针对第一应用中的目标元素输入的拖拽操作触发的拖拽事件时,获取所述目标元素对应的拖拽数据;
所述目标元素是指在第一应用中所显示的对象,可理解为第一应用中可拖拽的视图。所述目标元素可以包括文件、图片、音频、视频、链接、文字等对象。
所述第一应用可以为具有可拖拽元素的任一应用,如浏览器、文件管理器、白板、视频播放器等。
需要说明的是,对于目标元素,包括有源数据,如数据类型、数据内容、存储路径、数据来源、数据颜色、数据风格等信息。所述拖拽数据可以为源数据,也可以为预设格式的数据。
当拖拽数据为预设格式的数据时,可通过对源数据进行解析而得到拖拽数据。
例如,设置拖拽数据包括元素的数据类型、存储路径以及数据来源。其中,数据类型可包括文件、图片、视频、文字等,数据来源可包括元素的应用包名。
具体实现中,当用户开启第一应用后,第一应用可以窗口模式或分屏模式等显示在元素拖拽装置的显示屏上,当用户选中第一应用显示界面上的目标元素并进行拖拽时(用户可通过鼠标等外设点击目标元素并进行拖拽,也可以直接通过手指或触控笔点击目标元素并进行拖拽),元素拖拽装置监听到针对该目标元素的拖拽事件,并在本地缓存或网络存储中查找目标元素的源数据,对源数据进行解析后,得到相应的拖拽数据,并将拖拽数据传入拖拽接口中。
其中,在安卓系统中,拖拽接口可以为View.startDragAndDrop(),View.startDragAndDrop()为View.startDrag()的替代方法,需要传递View.Drag_Flag_Global来实现跨应用拖拽。如果需要将URI权限传递给接收方应用,还可以根据需要设置View.Drag_Flag_Global_URI_READ或者View.Drag_Flag_Global_URI_WRITE。
元素拖拽装置监听到针对该目标元素的拖拽事件,可以理解为,当用户点击目标元素时,Activity可以监听目标元素对应的视图View的onDrag事件。
S102,获取所述拖拽事件对应的拖拽轨迹,当监听到所述拖拽轨迹的拖拽终点位于第二应用中时,将所述拖拽数据移动至所述第二应用;
第二应用为不同于第一应用的任一应用。且第一应用与第二应用在同一显示界面显示。两应用可以窗口模式显示、也可以分屏模式显示,还可以画中画模式显示。
拖拽轨迹即为目标元素的移动轨迹,该拖拽轨迹包括拖拽起点和拖拽终点。拖拽起点即为第一应用中目标元素所在的位置,拖拽终点为用户按压目标元素持续移动并在放开目标元素时所在的位置。
具体的,元素拖拽装置监测用户输入的拖拽轨迹,并在用户释放目标元素时,读取拖拽终点的坐标,再将该坐标与第二应用的当前显示窗口的接收视图坐标范围进行比对,若该坐标位于接收视图坐标范围内,则确定拖拽终点位于第二应用中,将拖拽数据传递至第二应用对应的进程。下面所描述的第二应用接收拖拽数据或拖拽数据传递至第二应用,均是指第二应用进程接收拖拽数据或拖拽数据传递至第二应用进程。
其中,对于安卓系统,用户放开目标元素会触发ACTION_DRAG_ENDED事件,如果此时被拖拽的视图正好在监听的视图中,则会先触发ACTION_DROP事件。DragEvent.ACTION_DROP事件发生的条件为:当被拖拽的视图的阴影进入到第二应用的坐标区域,如果此时用户松手,那么第二应用就可以接收到这个Drop事件,便可以触发DragEvent.ACTION_DROP,把拖拽数据传到第二应用中。
可选的,当拖拽数据为预设格式的数据时,可以理解为,拖拽数据的数据量较小,因此可直接传递拖拽数据。当拖拽数据的数据量较大时,可先对拖拽数据进行封装,在第二应用接收到该拖拽数据时再解封装。
封装就是把业务数据映射到某个封装协议的净荷中,然后填充对应协议的包头,形成封装协议的数据包,并完成速率适配。在本申请实施例中,业务数据即为拖拽数据。
相应的,在第二应用接收到拖拽数据时,需要对拖拽数据进行解封装。解封装,即为封装的逆过程,拆解协议包,处理包头中的信息,取出净荷中的业务信息。
S103,基于所述拖拽数据获取所述目标元素,并在所述第二应用中展示所述目标元素。
一种可行的实现方式为,当元素拖拽装置检测到用户针对第一应用中的目标元素输入拖拽事件时,同步下载该目标元素并在本地存储,并将本地存储路径作为拖拽数据。将拖拽数据传入至第二应用后,元素拖拽装置可基于该存储路径在本地存储中读取目标元素,并将该目标元素在第二应用中的拖拽终点位置进行展示。
另一种可行的实现方式为,当元素拖拽装置检测到用户针对第一应用中的目标元素输入拖拽事件时,获取该目标元素的当前存储路径,并将当前存储路径作为拖拽数据。将拖拽数据传入至第二应用后,元素拖拽装置可基于该当前存储路径(若为网络存储路径)向网络服务器发送元素获取请求后接收网络服务器下发的目标元素,并将该目标元素在第二应用中的拖拽终点位置进行展示。
例如,第一应用为文件管理器,第二应用为白板软件,从文件管理器中拖拽一张图片进入白板软件,白板软件会自动插入该图片。
又例如,第一应用为浏览器,第二应用为白板软件,从浏览器中拖拽一段文字进入白板软件,白板软件会自动插入该文字。
又例如,第一应用为浏览器,第二应用为文件管理器,从浏览器中拖拽一张图片进入文件管理器,文件管理器会自动保持该图片。
又例如,第一应用为文件管理器,第二应用为视频播放器,从文件管理器中拖拽一个视频文件到视频播放器中,视频播放器自动插入该视频文件,并可以基于用户的播放操作播放该视频,也可自动触发播放该视频。
需要说明的是,可采用相同的方式将第二应用中的目标元素拖拽至第一应用中,例如,可将白板软件中编辑完成的文本信息以图片方式插入到浏览器中,此处不再赘述。
本申请实施例的方案在执行时,当监听到针对第一应用中的目标元素输入的拖拽事件时,获取所述目标元素对应的拖拽数据,再获取所述拖拽事件对应的拖拽轨迹,当监听到所述拖拽轨迹的拖拽终点位于第二应用中时,将所述拖拽数据移动至所述第二应用,从而可以基于所述拖拽数据获取所述目标元素,并在所述第二应用中进行展示。可以将一个应用中的目标元素拖拽至另一个应用中,实现元素的跨应用拖拽及展示,且元素类型丰富多样,适用场景多。
请参见图6,为本申请实施例提供的一种元素拖拽方法的流程示意图。该元素拖拽方法可以包括以下步骤:
S201,在安卓系统中,当监听到针对第一应用中的目标元素输入的拖拽操作触发的拖拽事件时,获取所述目标元素对应的拖拽数据并生成拖拽视图;
所述目标元素是指在第一应用中所显示的对象,可理解为第一应用中可拖拽的视图。所述目标元素可以包括文件、图片、音频、视频、链接、文字等对象。
所述第一应用可以为具有可拖拽元素的任一应用,如浏览器、文件管理器、白板、视频播放器等。
需要说明的是,对于目标元素,包括有源数据,如数据类型、数据内容、存储路径、数据来源、数据颜色、数据风格等信息。所述拖拽数据可以为源数据,也可以为预设格式的数据。
当拖拽数据为预设格式的数据时,可通过对源数据进行解析而得到拖拽数据。
例如,设置拖拽数据包括元素的数据类型、存储路径以及数据来源。其中,数据类型可包括文件、图片、视频、文字等,数据来源可包括元素的应用包名。
例如:在文件管理器中选择了两张图片(目标元素)进行拖拽,其对应的拖拽数据如下:
拖拽数据1:数据类型:image;存储路径:/sdcard/1.png;数据来源:Finder;
拖拽数据2:数据类型:image;存储路径:/sdcard/2.png;数据来源:Finder。
具体实现中,当用户开启第一应用后,第一应用可以窗口模式或分屏模式等显示在元素拖拽装置的显示屏上,当用户选中第一应用显示界面上的目标元素并进行拖拽时(用户可通过鼠标等外设点击目标元素并进行拖拽,也可以直接通过手指或触控笔点击目标元素并进行拖拽),元素拖拽装置监听到针对该目标元素的拖拽事件,并在本地缓存或网络存储中查找目标元素的源数据,对源数据进行解析后,得到相应的拖拽数据,并将拖拽数据传入拖拽接口中。
其中,在安卓系统中,拖拽接口可以为View.startDragAndDrop(),View.startDragAndDrop()为View.startDrag()的替代方法,需要传递View.Drag_Flag_Global来实现跨应用拖拽。如果需要将URI权限传递给接收方应用,还可以根据需要设置View.Drag_Flag_Global_URI_READ或者View.Drag_Flag_Global_URI_WRITE。
元素拖拽装置监听到针对该目标元素的拖拽事件,可以理解为,当用户点击目标元素时,Activity可以监听目标元素对应的视图View的onDrag事件。
同时,生成一个拖拽视图的根布局,作为目标元素的承载容器。所生成的拖拽视图可以位于目标元素对应的视图所在的位置,也可以位于该视图预设范围内。
对于安卓系统,生成拖拽视图(View)可以包括如下两种方式:其一,调用Activity的onCreate方法,并执行setContentView,从而创建View对象;其二,获取一个WindowManager,并调用其addView方法,将视图交给WindowManagerService进行管理。
例如,如图7所示,当用户点击目标元素触发拖拽事件时,在该目标元素所在位置同步生成一个拖拽视图。
S202,对所述拖拽数据进行序列化处理;
由于计算机往往是根据二进制来区分数据的,例如一个字节、两个字节、三个字节等等,但是,由于在内存中或者磁盘上,或者平台的环境不同,为了方便数据在不同的地方能够具有相同的含义,则需要将数据转换为一种都能识别的格式,二进制或者编码格式为所认同的方式,而序列化正好是将一种数据格式转换为二进制数据流的过程或者方法,那么该数据结构就能够在任何地方保持其原有的含义。
即序列化处理就是将数据结构转换成为二进制数据流或者文本流的过程。序列化后的数据方便在网络上传输和在硬盘上存储。
其中,二进制流是以二进制为最小单位进行编码,例如多少个bit代表什么,文本流是以字符来进行编码,多少个字节(通常是以字节为单位)代表什么。
需要说明的是,序列化与编码为不同的含义。编码约定的是更底层数据的含义,例如字符的表示,有ASCII、UTF-8、GBK等等,例如整数的表示,1=00000001一个字节,编码约定了数据格式的最小单元,而序列化是依赖于字符编码之上的一种数据格式。
在本申请实施例中,通过对拖拽数据进行序列化处理,可以将拖拽数据转换为适合传递的二进制数据流或文本流。
S203,获取所述目标元素的显示高度、显示宽度以及中心点坐标;
对于安卓系统,通过View.getWidth()以及View.getHeight()分别获取目标元素所在视图的显示宽度和显示高度,并通过View.getX()和View.getY()获取目标元素所在视图的中心坐标位置。
可选的,当所选择的目标元素包括多个时,则可采用相同的方式分别获取每个目标元素的显示高度、显示宽度以及中心点坐标。
S204,按照所述显示高度、所述显示宽度以及所述中心点坐标将所述目标元素添加至所述拖拽视图中;
具体的,将该中心点坐标对准拖拽视图的中心,并按照相同的尺寸(显示高度和显示宽度)将目标元素添加到拖拽视图中,此时,在拖拽视图以及第一应用中均显示有目标元素,其对应的显示效果如图8所示。
S205,获取所述拖拽事件对应的拖拽轨迹,将所述拖拽视图沿着所述拖拽轨迹同步移动;
拖拽轨迹即为目标元素的移动轨迹,该拖拽轨迹包括拖拽起点和拖拽终点。拖拽起点即为第一应用中目标元素所在的位置,拖拽终点为用户按压目标元素持续移动并在放开目标元素时所在的位置。
元素拖拽装置实时监测用户的拖拽轨迹,且控制拖拽视图随着拖拽轨迹同步移动。例如,当手指移动到第一位置时,拖拽视图在第一位置显示,如图9a所示,当手指移动到第二位置时,拖拽视图在第二位置显示,如图9b所示。
S206,当监听到所述拖拽轨迹的拖拽终点位于第二应用中时,将序列化处理后的所述拖拽数据移动至所述第二应用,并隐藏所述拖拽视图;
第二应用为不同于第一应用的任一应用。且第一应用与第二应用在同一显示界面显示。两应用可以窗口模式显示、也可以分屏模式显示,还可以画中画模式显示。
具体的,元素拖拽装置监测用户输入的拖拽轨迹,并在用户释放目标元素时,读取拖拽终点的坐标,再将该坐标与第二应用的当前显示窗口的接收视图坐标范围进行比对,若该坐标位于接收视图坐标范围内,则确定拖拽终点位于第二应用中。
当确定拖拽终点位于第二应用中时,即拖拽至第二应用后触发第二应用进程,一方面隐藏所述拖拽视图,如图10所示,另一方面将序列化处理后的所述拖拽数据传递至第二应用。也就是说,在整个拖拽过程中传递至第二应用的仅仅包括拖拽数据,而显示的拖拽视图用于视觉上的同步移动,拖拽视图并未传递至第二应用。
可选的,当该坐标位于第二应用的当前显示窗口的接收视图坐标范围之外时,即未拖拽至第二应用或拖拽至第二应用后未触发第二应用进程,拖拽视图返回到第一应用中。可沿用户输入的拖拽轨迹返回,也可沿预设的拖拽轨迹返回。
S207,对序列化处理后的所述拖拽数据进行反序列化处理;
反序列化处理是序列化处理的逆过程,是将二进制数据流或者文本流转换成为易于处理和阅读的数据结构的过程。
通过对序列化处理后的拖拽数据(即序列化后的二进制流或文本流)进行反序列化处理,从而可以得到拖拽数据。
S208,基于反序列化处理后的所述拖拽数据获取所述目标元素,并在所述第二应用中展示所述目标元素。
一种可行的实现方式为,当元素拖拽装置检测到用户针对第一应用中的目标元素输入拖拽事件时,同步下载该目标元素并在本地存储,并将本地存储路径作为拖拽数据。将拖拽数据传入至第二应用后,元素拖拽装置可基于该存储路径在本地存储中读取目标元素,并将该目标元素在第二应用中的拖拽终点位置进行展示。
另一种可行的实现方式为,当元素拖拽装置检测到用户针对第一应用中的目标元素输入拖拽事件时,获取该目标元素的当前存储路径,并将当前存储路径作为拖拽数据。将拖拽数据传入至第二应用后,元素拖拽装置可基于该当前存储路径(若为网络存储路径)向网络服务器发送元素获取请求后接收网络服务器下发的目标元素,并将该目标元素在第二应用中的拖拽终点位置进行展示。
例如,如图11所示,元素拖拽装置基于拖拽数据查找到目标元素后,在拖拽终点的视图中展示该目标元素。
需要说明的是,可采用相同的方式将第二应用中的目标元素拖拽至第一应用中,此处不再赘述。
本申请实施例的方案在执行时,在安卓系统中,当监听到针对第一应用中的目标元素输入的拖拽操作触发的拖拽事件时,获取所述目标元素对应的拖拽数据并生成拖拽视图,将目标元素添加至拖拽视图后,再获取所述拖拽事件对应的拖拽轨迹,控制拖拽视图随着拖拽轨迹同步移动,当监听到所述拖拽轨迹的拖拽终点位于第二应用中时,将所述拖拽数据移动至所述第二应用并隐藏拖拽视图,从而可以基于所述拖拽数据获取所述目标元素,并在所述第二应用中进行展示。一方面,通过同步展示拖拽视图随着拖拽轨迹的移动,视觉上展示元素拖拽的效果,提升用户体验,另一方面,只将拖拽数据传递至第二应用,再通过拖拽数据调用目标元素进行展示,在实现目标元素在安卓系统中跨应用拖拽展示的同时,相对传递目标元素的数据量更小,另外,元素类型丰富多样,适用场景多。
图12为本申请实施例提供的一种元素拖拽方法的流程图。本实施例是在上述实施例的基础上进行具体化。参考图12,本实施例提供的元素拖拽方法具体包括:
S301,接收第一应用启动指令和第二应用启动指令;
S302,显示第一应用和第二应用;
S303,接收元素选择指令;
其中,所述元素选择指令用于选择第一应用中的目标元素。
S304,在所述目标元素处生成拖拽视图,将目标元素添加至所述拖拽视图中;
其中,可获取所述目标元素的显示尺寸,将所述目标元素按照所述显示尺寸添加到所述拖拽视图中。
S305,显示添加了所述目标元素的拖拽视图;
S306,获取所述目标元素的拖拽数据;
具体可参见S201。
S307,接收元素拖拽指令;
其中,所述元素拖拽指令用于将所述拖拽视图从第一应用中移动至第二应用中。
S308,显示所述拖拽视图的移动轨迹,所述移动轨迹为所述拖拽指令对应的拖拽轨迹;
S309,接收拖拽结束指令;
其中,所述拖拽结束指令用于控制在所述第二应用中结束拖拽所述拖拽视图;
S310,判断是否拖拽成功;
S311,若拖拽成功,则隐藏所述拖拽视图,将所述拖拽数据移动至所述第二应用中;
S312,基于所述第二应用获取目标元素,在所述第二应用中显示所述目标元素。
可选的,在所述第二应用中播放所述目标元素。
S313,若拖拽失败,则显示所述拖拽视图的返回轨迹;
其中,所述返回轨迹用于控制所述拖拽视图沿着所述拖拽轨迹返回至所述第一应用中。
下面对本实施例提供的技术方案进行示例性的描述:
本示例中,参考图1,显示屏为交互智能平板的显示屏,在交互智能平板的安卓系统上安装有第一应用软件和第二应用软件。本示例中,当分别开启第一应用软件和第二应用软件后,用户可在第一应用的显示界面选取要拖拽的元素,当用户选择其中的目标元素后,交互智能平板接收到拖拽指令,则在相同的位置生成拖拽视图,然后将目标元素添加到拖拽视图上,当用户选中目标元素并开始拖拽后,拖拽视图随着用户的操作同步移动,在移动到第二应用的界面后,若用户结束拖拽,则隐藏拖拽视图,并在结束的位置显示目标元素,若该目标元素为视频,则可在拖拽成功后,在第二应用中直接播放。若拖拽失败,则沿着拖拽轨迹再返回到第一应用中。
在安卓系统中,当用户选中第一应用中的目标元素并进行拖拽,且在拖拽至第二应用后结束拖拽,并在第二应用中显示该目标元素。一方面,通过同步展示拖拽视图随着拖拽轨迹的移动,视觉上展示元素拖拽的效果,提升用户体验,另一方面,只将拖拽数据传递至第二应用,再通过拖拽数据调用目标元素进行展示,在实现目标元素在安卓系统中跨应用拖拽展示的同时,相对传递目标元素的数据量更小,另外,元素类型丰富多样,适用场景多。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参见图13,其示出了本申请一个示例性实施例提供的元素拖拽装置的结构示意图。该元素拖拽装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该装置1包括数据获取模块10、数据移动模块20和元素展示模块30。
数据获取模块10,用于在安卓系统中,当监听到针对第一应用中的目标元素输入的拖拽操作触发的拖拽事件时,获取所述目标元素对应的拖拽数据;
数据移动模块20,用于获取所述拖拽事件对应的拖拽轨迹,当监听到所述拖拽轨迹的拖拽终点位于第二应用中时,将所述拖拽数据移动至所述第二应用;
元素展示模块30,用于基于所述拖拽数据获取所述目标元素,并在所述第二应用中展示所述目标元素。
可选的,如图14所示,所述数据获取模块10,包括:
数据获取单元101,用于当监听到针对第一应用中的目标元素输入的拖拽操作触发的拖拽事件时,获取所述目标元素对应的拖拽数据,并生成拖拽视图;
元素添加单元102,用于将所述目标元素添加至所述拖拽视图中;
所述数据移动模块20,具体用于:
获取所述拖拽事件对应的拖拽轨迹,将所述拖拽视图沿着所述拖拽轨迹同步移动;
当监听到所述拖拽轨迹的拖拽终点位于第二应用中时,将所述拖拽数据移动至所述第二应用,并隐藏所述拖拽视图。
可选的,所述元素添加单元102,具体用于:
获取所述目标元素的显示高度、显示宽度以及中心点坐标;
按照所述显示高度、所述显示宽度以及所述中心点坐标将所述目标元素添加至所述拖拽视图中。
可选的,如图15所示,所述数据获取模块10,包括:
源数据获取单元103,用于获取所述目标元素对应的源数据;
拖拽数据获取单元104,用于对所述源数据进行解析,获取所述目标元素对应的预设格式的拖拽数据。
可选的,如图16所示,所述装置还包括:
序列化模块40,用于对所述拖拽数据进行序列化处理;
所述数据移动模块20,具体用于:
将序列化处理后的所述拖拽数据移动至所述第二应用。
可选的,如图16所示,所述装置还包括:
反序列化模块50,用于对序列化处理后的所述拖拽数据进行反序列化处理;
所述元素展示模块30,具体用于:
基于反序列化处理后的所述拖拽数据获取所述目标元素。
需要说明的是,上述实施例提供的元素拖拽装置在执行元素拖拽方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的元素拖拽装置与元素拖拽方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请实施例的方案在执行时,在安卓系统中,当监听到针对第一应用中的目标元素输入的拖拽操作触发的拖拽事件时,获取所述目标元素对应的拖拽数据并生成拖拽视图,将目标元素添加至拖拽视图后,再获取所述拖拽事件对应的拖拽轨迹,控制拖拽视图随着拖拽轨迹同步移动,当监听到所述拖拽轨迹的拖拽终点位于第二应用中时,将所述拖拽数据移动至所述第二应用并隐藏拖拽视图,从而可以基于所述拖拽数据获取所述目标元素,并在所述第二应用中进行展示。一方面,通过同步展示拖拽视图随着拖拽轨迹的移动,视觉上展示元素拖拽的效果,提升用户体验,另一方面,只将拖拽数据传递至第二应用,再通过拖拽数据调用目标元素进行展示,在实现目标元素在安卓系统中跨应用拖拽展示的同时,相对传递目标元素的数据量更小,另外,元素类型丰富多样,适用场景多。
请参见图17,其示出了本申请一个示例性实施例提供的元素拖拽装置的结构示意图。该元素拖拽装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。
选择指令接收模块10,用于接收元素选择指令,所述元素选择指令用于选择第一应用中的目标元素;
元素添加模块20,用于在所述目标元素处生成拖拽视图,将目标元素添加至所述拖拽视图中;
视图显示模块30,用于显示添加了所述目标元素的拖拽视图;
拖拽指令接收模块40,用于接收元素拖拽指令,所述元素拖拽指令用于将所述拖拽视图从第一应用中移动至第二应用中;
移动轨迹显示模块50,用于显示所述拖拽视图的移动轨迹,所述移动轨迹为所述拖拽指令对应的拖拽轨迹;
结束指令接收模块60,用于接收拖拽结束指令,所述拖拽结束指令用于控制在所述第二应用中结束拖拽所述拖拽视图;
元素显示模块70,用于隐藏所述拖拽视图,并在所述第二应用中显示所述目标元素。
可选的,如图18所示,所述装置还包括:
数据获取模块80,用于获取所述目标元素的拖拽数据;
所述元素显示模块70,具体用于:
将所述拖拽数据移动至所述第二应用中,基于所述第二应用获取目标元素;
在所述第二应用中显示所述目标元素。
可选的,所述元素显示模块70,具体用于:
在所述第二应用中播放所述目标元素。
可选的,如图18所示,所述装置还包括:
启动指令接收模块90,用于接收第一应用启动指令和第二应用启动指令;
应用显示模块100,用于显示第一应用和第二应用。
可选的,如图18所示,所述装置还包括:
拖拽判断模块110,用于判断是否拖拽成功;
返回轨迹显示模块120,用于若拖拽失败,则显示所述拖拽视图的返回轨迹,所述返回轨迹用于控制所述拖拽视图沿着所述拖拽轨迹返回至所述第一应用中。
可选的,所述元素添加模块20,具体用于:
获取所述目标元素的显示尺寸,将所述目标元素按照所述显示尺寸添加到所述拖拽视图中。
需要说明的是,上述实施例提供的元素拖拽装置在执行元素拖拽方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的元素拖拽装置与元素拖拽方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在安卓系统中,当用户选中第一应用中的目标元素并进行拖拽,且在拖拽至第二应用后结束拖拽,并在第二应用中显示该目标元素。一方面,通过同步展示拖拽视图随着拖拽轨迹的移动,视觉上展示元素拖拽的效果,提升用户体验,另一方面,只将拖拽数据传递至第二应用,再通过拖拽数据调用目标元素进行展示,在实现目标元素在安卓系统中跨应用拖拽展示的同时,相对传递目标元素的数据量更小,另外,元素类型丰富多样,适用场景多。
本申请实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行如上述图4-图12所示实施例的方法步骤,具体执行过程可以参见图4-图12所示实施例的具体说明,在此不进行赘述。
本申请还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行如上述图4-图12所示实施例的方法步骤,具体执行过程可以参见图4-图12所示实施例的具体说明,在此不进行赘述。
请参见图19,为本申请实施例提供了一种交互智能平板的结构示意图。如图19所示,所述交互智能平板1000可以包括:至少一个处理器1001,至少一个网络接口1004,用户接口1003,存储器1005,至少一个通信总线1002。
其中,通信总线1002用于实现这些组件之间的连接通信。
其中,用户接口1003可以包括显示屏(Display)、摄像头(Camera),可选用户接口1003还可以包括标准的有线接口、无线接口。
其中,网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,处理器1001可以包括一个或者多个处理核心。处理器1001利用各种借口和线路连接整个交互智能平板1000内的各个部分,通过运行或执行存储在存储器1005内的指令、程序、代码集或指令集,以及调用存储在存储器1005内的数据,执行交互智能平板1000的各种功能和处理数据。可选的,处理器1001可以采用数字信号处理(Digital SignalProcessing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器1001可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics ProcessingUnit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1001中,单独通过一块芯片进行实现。
其中,存储器1005可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器1005包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1005可用于存储指令、程序、代码、代码集或指令集。存储器1005可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图19所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及元素拖拽应用程序。
在图19所示的交互智能平板1000中,用户接口1003主要用于为用户提供输入的接口,获取用户输入的数据;而处理器1001可以用于调用存储器1005中存储的元素拖拽应用程序,并具体执行以下操作:
在安卓系统中,当监听到针对第一应用中的目标元素输入的拖拽操作触发的拖拽事件时,获取所述目标元素对应的拖拽数据;
获取所述拖拽事件对应的拖拽轨迹,当监听到所述拖拽轨迹的拖拽终点位于第二应用中时,将所述拖拽数据移动至所述第二应用;
基于所述拖拽数据获取所述目标元素,并在所述第二应用中展示所述目标元素。
在一个实施例中,所述处理器1001在执行当监听到针对第一应用中的目标元素输入的拖拽操作触发的拖拽事件时,获取所述目标元素对应的拖拽数据时,具体执行以下操作:
当监听到针对第一应用中的目标元素输入的拖拽操作触发的拖拽事件时,获取所述目标元素对应的拖拽数据,并生成拖拽视图;
将所述目标元素添加至所述拖拽视图中;
所述处理器1001在执行获取所述拖拽事件对应的拖拽轨迹时,具体执行以下操作:
获取所述拖拽事件对应的拖拽轨迹,将所述拖拽视图沿着所述拖拽轨迹同步移动;
所述处理器1001在执行当监听到所述拖拽轨迹的拖拽终点位于第二应用中时,将所述拖拽数据移动至所述第二应用时,具体执行以下操作:
当监听到所述拖拽轨迹的拖拽终点位于第二应用中时,将所述拖拽数据移动至所述第二应用,并隐藏所述拖拽视图。
在一个实施例中,所述处理器1001在执行将所述目标元素添加至所述拖拽视图中时,具体执行以下操作:
获取所述目标元素的显示高度、显示宽度以及中心点坐标;
按照所述显示高度、所述显示宽度以及所述中心点坐标将所述目标元素添加至所述拖拽视图中。
在一个实施例中,所述处理器1001在执行获取所述目标元素对应的拖拽数据时,具体执行以下操作:
获取所述目标元素对应的源数据;
对所述源数据进行解析,获取所述目标元素对应的预设格式的拖拽数据。
在一个实施例中,所述处理器1001在执行获取所述目标元素对应的拖拽数据之后,还执行以下操作:
对所述拖拽数据进行序列化处理;
所述处理器1001在执行将所述拖拽数据移动至所述第二应用时,具体执行以下操作:
将序列化处理后的所述拖拽数据移动至所述第二应用。
在一个实施例中,所述处理器1001在执行将序列化处理后的所述拖拽数据移动至所述第二应用之后,还执行以下操作:
对序列化处理后的所述拖拽数据进行反序列化处理;
所述处理器1001在执行基于所述拖拽数据获取所述目标元素时,具体执行以下操作:
基于反序列化处理后的所述拖拽数据获取所述目标元素。
本申请实施例的方案在执行时,在安卓系统中,当监听到针对第一应用中的目标元素输入的拖拽操作触发的拖拽事件时,获取所述目标元素对应的拖拽数据并生成拖拽视图,将目标元素添加至拖拽视图后,再获取所述拖拽事件对应的拖拽轨迹,控制拖拽视图随着拖拽轨迹同步移动,当监听到所述拖拽轨迹的拖拽终点位于第二应用中时,将所述拖拽数据移动至所述第二应用并隐藏拖拽视图,从而可以基于所述拖拽数据获取所述目标元素,并在所述第二应用中进行展示。一方面,通过同步展示拖拽视图随着拖拽轨迹的移动,视觉上展示元素拖拽的效果,提升用户体验,另一方面,只将拖拽数据传递至第二应用,再通过拖拽数据调用目标元素进行展示,在实现目标元素在安卓系统中跨应用拖拽展示的同时,相对传递目标元素的数据量更小,另外,元素类型丰富多样,适用场景多。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (26)
1.一种元素拖拽方法,其特征在于,所述方法包括:
在安卓系统中,当监听到针对第一应用中的目标元素输入的拖拽操作触发的拖拽事件时,获取所述目标元素对应的拖拽数据;
获取所述拖拽事件对应的拖拽轨迹,当监听到所述拖拽轨迹的拖拽终点位于第二应用中时,将所述拖拽数据移动至所述第二应用;
基于所述拖拽数据获取所述目标元素,并在所述第二应用中展示所述目标元素。
2.根据权利要求1所述的方法,其特征在于,所述当监听到针对第一应用中的目标元素输入的拖拽操作触发的拖拽事件时,获取所述目标元素对应的拖拽数据,包括:
当监听到针对第一应用中的目标元素输入的拖拽操作触发的拖拽事件时,获取所述目标元素对应的拖拽数据,并生成拖拽视图;
将所述目标元素添加至所述拖拽视图中;
所述获取所述拖拽事件对应的拖拽轨迹,包括:
获取所述拖拽事件对应的拖拽轨迹,将所述拖拽视图沿着所述拖拽轨迹同步移动;
所述当监听到所述拖拽轨迹的拖拽终点位于第二应用中时,将所述拖拽数据移动至所述第二应用,包括:
当监听到所述拖拽轨迹的拖拽终点位于第二应用中时,将所述拖拽数据移动至所述第二应用,并隐藏所述拖拽视图。
3.根据权利要求2所述的方法,其特征在于,所述将所述目标元素添加至所述拖拽视图中,包括:
获取所述目标元素的显示高度、显示宽度以及中心点坐标;
按照所述显示高度、所述显示宽度以及所述中心点坐标将所述目标元素添加至所述拖拽视图中。
4.根据权利要求1所述的方法,其特征在于,所述获取所述目标元素对应的拖拽数据,包括:
获取所述目标元素对应的源数据;
对所述源数据进行解析,获取所述目标元素对应的预设格式的拖拽数据。
5.根据权利要求1所述的方法,其特征在于,所述获取所述目标元素对应的拖拽数据之后,还包括:
对所述拖拽数据进行序列化处理;
所述将所述拖拽数据移动至所述第二应用,包括:
将序列化处理后的所述拖拽数据移动至所述第二应用。
6.根据权利要求5所述的方法,其特征在于,所述将序列化处理后的所述拖拽数据移动至所述第二应用之后,还包括:
对序列化处理后的所述拖拽数据进行反序列化处理;
所述基于所述拖拽数据获取所述目标元素,包括:
基于反序列化处理后的所述拖拽数据获取所述目标元素。
7.一种元素拖拽方法,其特征在于,所述方法包括:
接收元素选择指令,所述元素选择指令用于选择第一应用中的目标元素;
在所述目标元素处生成拖拽视图,将目标元素添加至所述拖拽视图中;
显示添加了所述目标元素的拖拽视图;
接收元素拖拽指令,所述元素拖拽指令用于将所述拖拽视图从第一应用中移动至第二应用中;
显示所述拖拽视图的移动轨迹,所述移动轨迹为所述拖拽指令对应的拖拽轨迹;
接收拖拽结束指令,所述拖拽结束指令用于控制在所述第二应用中结束拖拽所述拖拽视图;
隐藏所述拖拽视图,并在所述第二应用中显示所述目标元素。
8.根据权利要求7所述的方法,其特征在于,所述显示添加了所述目标元素的拖拽视图之后,还包括:
获取所述目标元素的拖拽数据;
所述在所述第二应用中显示所述目标元素,包括:
将所述拖拽数据移动至所述第二应用中,基于所述第二应用获取目标元素;
在所述第二应用中显示所述目标元素。
9.根据权利要求8所述的方法,其特征在于,所述在所述第二应用中显示所述目标元素,包括:
在所述第二应用中播放所述目标元素。
10.根据权利要求7所述的方法,其特征在于,所述接收针对第一应用中目标元素的选择指令之前,还包括:
接收第一应用启动指令和第二应用启动指令;
显示第一应用和第二应用。
11.根据权利要求7所述的方法,其特征在于,所述接收拖拽结束指令之后,还包括:
判断是否拖拽成功;
若拖拽失败,则显示所述拖拽视图的返回轨迹,所述返回轨迹用于控制所述拖拽视图沿着所述拖拽轨迹返回至所述第一应用中。
12.根据权利要求7所述的方法,其特征在于,所述将目标元素添加至所述拖拽视图中,包括:
获取所述目标元素的显示尺寸,将所述目标元素按照所述显示尺寸添加到所述拖拽视图中。
13.一种元素拖拽装置,其特征在于,所述装置包括:
数据获取模块,用于在安卓系统中,当监听到针对第一应用中的目标元素输入的拖拽操作触发的拖拽事件时,获取所述目标元素对应的拖拽数据;
数据移动模块,用于获取所述拖拽事件对应的拖拽轨迹,当监听到所述拖拽轨迹的拖拽终点位于第二应用中时,将所述拖拽数据移动至所述第二应用;
元素展示模块,用于基于所述拖拽数据获取所述目标元素,并在所述第二应用中展示所述目标元素。
14.根据权利要求13所述的装置,其特征在于,所述数据获取模块,包括:
数据获取单元,用于当监听到针对第一应用中的目标元素输入的拖拽操作触发的拖拽事件时,获取所述目标元素对应的拖拽数据,并生成拖拽视图;
元素添加单元,用于将所述目标元素添加至所述拖拽视图中;
所述数据移动模块,具体用于:
获取所述拖拽事件对应的拖拽轨迹,将所述拖拽视图沿着所述拖拽轨迹同步移动;
当监听到所述拖拽轨迹的拖拽终点位于第二应用中时,将所述拖拽数据移动至所述第二应用,并隐藏所述拖拽视图。
15.根据权利要求14所述的装置,其特征在于,所述元素添加单元,具体用于:
获取所述目标元素的显示高度、显示宽度以及中心点坐标;
按照所述显示高度、所述显示宽度以及所述中心点坐标将所述目标元素添加至所述拖拽视图中。
16.根据权利要求13所述的装置,其特征在于,所述数据获取模块,包括:
源数据获取单元,用于获取所述目标元素对应的源数据;
拖拽数据获取单元,用于对所述源数据进行解析,获取所述目标元素对应的预设格式的拖拽数据。
17.根据权利要求13所述的装置,其特征在于,所述装置还包括:
序列化模块,用于对所述拖拽数据进行序列化处理;
所述数据移动模块,具体用于:
将序列化处理后的所述拖拽数据移动至所述第二应用。
18.根据权利要求17所述的装置,其特征在于,所述装置还包括:
反序列化模块,用于对序列化处理后的所述拖拽数据进行反序列化处理;
所述元素展示模块,具体用于:
基于反序列化处理后的所述拖拽数据获取所述目标元素。
19.一种元素拖拽装置,其特征在于,所述装置包括:
选择指令接收模块,用于接收元素选择指令,所述元素选择指令用于选择第一应用中的目标元素;
元素添加模块,用于在所述目标元素处生成拖拽视图,将目标元素添加至所述拖拽视图中;
视图显示模块,用于显示添加了所述目标元素的拖拽视图;
拖拽指令接收模块,用于接收元素拖拽指令,所述元素拖拽指令用于将所述拖拽视图从第一应用中移动至第二应用中;
移动轨迹显示模块,用于显示所述拖拽视图的移动轨迹,所述移动轨迹为所述拖拽指令对应的拖拽轨迹;
结束指令接收模块,用于接收拖拽结束指令,所述拖拽结束指令用于控制在所述第二应用中结束拖拽所述拖拽视图;
元素显示模块,用于隐藏所述拖拽视图,并在所述第二应用中显示所述目标元素。
20.根据权利要求19所述的装置,其特征在于,所述装置还包括:
数据获取模块,用于获取所述目标元素的拖拽数据;
所述元素显示模块,具体用于:
将所述拖拽数据移动至所述第二应用中,基于所述第二应用获取目标元素;
在所述第二应用中显示所述目标元素。
21.根据权利要求20所述的装置,其特征在于,所述数据获取模块,具体用于:
在所述第二应用中播放所述目标元素。
22.根据权利要求29所述的装置,其特征在于,所述装置还包括:
启动指令接收模块,用于接收第一应用启动指令和第二应用启动指令;
应用显示模块,用于显示第一应用和第二应用。
23.根据权利要求19所述的装置,其特征在于,所述装置还包括:
拖拽判断模块,用于判断是否拖拽成功;
返回轨迹显示模块,用于若拖拽失败,则显示所述拖拽视图的返回轨迹,所述返回轨迹用于控制所述拖拽视图沿着所述拖拽轨迹返回至所述第一应用中。
24.根据权利要求19所述的装置,其特征在于,所述元素添加模块,具体用于:
获取所述目标元素的显示尺寸,将所述目标元素按照所述显示尺寸添加到所述拖拽视图中。
25.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1~12任意一项的方法步骤。
26.一种交互智能平板,其特征在于,包括:处理器和存储器;其中,所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如权利要求1~12任意一项的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910466388.7A CN110221759A (zh) | 2019-05-31 | 2019-05-31 | 一种元素拖拽方法、装置、存储介质及交互智能平板 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910466388.7A CN110221759A (zh) | 2019-05-31 | 2019-05-31 | 一种元素拖拽方法、装置、存储介质及交互智能平板 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110221759A true CN110221759A (zh) | 2019-09-10 |
Family
ID=67818875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910466388.7A Pending CN110221759A (zh) | 2019-05-31 | 2019-05-31 | 一种元素拖拽方法、装置、存储介质及交互智能平板 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110221759A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110888581A (zh) * | 2019-10-11 | 2020-03-17 | 广州视源电子科技股份有限公司 | 元素传递方法、装置、设备及存储介质 |
CN113419649A (zh) * | 2021-05-31 | 2021-09-21 | 广州三星通信技术研究有限公司 | 用于操作电子装置的方法及其装置 |
CN113656196A (zh) * | 2021-08-16 | 2021-11-16 | 深圳技德智能科技研究院有限公司 | 一种Linux兼容Android的应用间传送文件方法及装置 |
WO2022052677A1 (zh) * | 2020-09-09 | 2022-03-17 | 华为技术有限公司 | 界面显示方法及电子设备 |
WO2022247473A1 (zh) * | 2021-05-24 | 2022-12-01 | 中兴通讯股份有限公司 | 跨进程信息处理方法、控制器、终端和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130042259A1 (en) * | 2011-08-12 | 2013-02-14 | Otoy Llc | Drag and drop of objects between applications |
CN104281390A (zh) * | 2013-07-05 | 2015-01-14 | 索尼公司 | 信息处理装置和存储介质 |
WO2015179481A2 (en) * | 2014-05-22 | 2015-11-26 | Alibaba Group Holding Limited | Method, apparatus, and system for data transfer across applications |
CN105183707A (zh) * | 2015-09-08 | 2015-12-23 | 深圳市金立通信设备有限公司 | 一种内容编辑方法及终端 |
CN105867722A (zh) * | 2015-12-15 | 2016-08-17 | 乐视移动智能信息技术(北京)有限公司 | 一种列表项操作的处理方法和装置 |
CN105912191A (zh) * | 2016-03-31 | 2016-08-31 | 北京奇虎科技有限公司 | 实现终端设备的应用间交互的方法和装置 |
CN106020657A (zh) * | 2016-05-12 | 2016-10-12 | 山东大学 | 一种用于安卓系统的同目录文件拖拽移动方法 |
CN108491150A (zh) * | 2018-04-03 | 2018-09-04 | 百度在线网络技术(北京)有限公司 | 控件迁移方法、装置、终端及存储介质 |
-
2019
- 2019-05-31 CN CN201910466388.7A patent/CN110221759A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130042259A1 (en) * | 2011-08-12 | 2013-02-14 | Otoy Llc | Drag and drop of objects between applications |
CN103733170A (zh) * | 2011-08-12 | 2014-04-16 | Otoy公司 | 对象在应用之间的拖拽和放下 |
CN104281390A (zh) * | 2013-07-05 | 2015-01-14 | 索尼公司 | 信息处理装置和存储介质 |
WO2015179481A2 (en) * | 2014-05-22 | 2015-11-26 | Alibaba Group Holding Limited | Method, apparatus, and system for data transfer across applications |
CN105183707A (zh) * | 2015-09-08 | 2015-12-23 | 深圳市金立通信设备有限公司 | 一种内容编辑方法及终端 |
CN105867722A (zh) * | 2015-12-15 | 2016-08-17 | 乐视移动智能信息技术(北京)有限公司 | 一种列表项操作的处理方法和装置 |
CN105912191A (zh) * | 2016-03-31 | 2016-08-31 | 北京奇虎科技有限公司 | 实现终端设备的应用间交互的方法和装置 |
CN106020657A (zh) * | 2016-05-12 | 2016-10-12 | 山东大学 | 一种用于安卓系统的同目录文件拖拽移动方法 |
CN108491150A (zh) * | 2018-04-03 | 2018-09-04 | 百度在线网络技术(北京)有限公司 | 控件迁移方法、装置、终端及存储介质 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110888581A (zh) * | 2019-10-11 | 2020-03-17 | 广州视源电子科技股份有限公司 | 元素传递方法、装置、设备及存储介质 |
WO2022052677A1 (zh) * | 2020-09-09 | 2022-03-17 | 华为技术有限公司 | 界面显示方法及电子设备 |
WO2022247473A1 (zh) * | 2021-05-24 | 2022-12-01 | 中兴通讯股份有限公司 | 跨进程信息处理方法、控制器、终端和存储介质 |
CN113419649A (zh) * | 2021-05-31 | 2021-09-21 | 广州三星通信技术研究有限公司 | 用于操作电子装置的方法及其装置 |
CN113656196A (zh) * | 2021-08-16 | 2021-11-16 | 深圳技德智能科技研究院有限公司 | 一种Linux兼容Android的应用间传送文件方法及装置 |
CN113656196B (zh) * | 2021-08-16 | 2024-02-27 | 深圳技德应用技术有限公司 | 一种Linux兼容Android的应用间传送文件方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110221759A (zh) | 一种元素拖拽方法、装置、存储介质及交互智能平板 | |
WO2020083021A1 (zh) | 视频录制方法、视频播放方法、装置、设备及存储介质 | |
CN107995101B (zh) | 一种用于将语音消息转为文本信息的方法与设备 | |
US10394577B2 (en) | Method and apparatus for automatic processing of service requests on an electronic device | |
CN104995596A (zh) | 在选项卡层级管理音频以用于用户通知及控制 | |
CN110061909A (zh) | 用于处理信息的方法和设备 | |
CN109525853A (zh) | 直播间封面展示方法、装置、终端、服务器及可读介质 | |
CN107071512B (zh) | 一种配音方法、装置及系统 | |
CN107831974A (zh) | 信息分享方法、装置及存储介质 | |
CN104750372B (zh) | 一种文件共享方法和装置 | |
CN108055587A (zh) | 图像文件的分享方法、装置、移动终端及存储介质 | |
CN108259923B (zh) | 一种视频直播方法、系统及设备 | |
CN106610826A (zh) | 在线场景应用的制作方法及装置 | |
CN103973542B (zh) | 一种语音信息处理方法及装置 | |
CN110489039A (zh) | 信息处理方法、装置、存储介质及电子设备 | |
CN111914149A (zh) | 一种请求处理方法、装置、存储介质及电子设备 | |
US20220374588A1 (en) | View display method and device of form and electronic equipment | |
CN110174980A (zh) | 一种在会话窗口呈现信息的方法与设备 | |
CN109155804A (zh) | 基于卡片的信息管理方法与系统 | |
CN107077347A (zh) | 视图管理架构 | |
CN109428908A (zh) | 信息显示方法、装置及设备 | |
EP3103081B1 (en) | Collaborative group video production system | |
CN114386615A (zh) | 基于可视化拖拉的机器学习分析方法、系统、设备及介质 | |
CN107783650A (zh) | 一种基于虚拟机器人的人机交互方法及装置 | |
CN115314535B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190910 |