CN106933486A - 用于安卓系统的触控实现方法及装置 - Google Patents

用于安卓系统的触控实现方法及装置 Download PDF

Info

Publication number
CN106933486A
CN106933486A CN201710148091.7A CN201710148091A CN106933486A CN 106933486 A CN106933486 A CN 106933486A CN 201710148091 A CN201710148091 A CN 201710148091A CN 106933486 A CN106933486 A CN 106933486A
Authority
CN
China
Prior art keywords
information
touch
bitmap
layers
android system
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
CN201710148091.7A
Other languages
English (en)
Other versions
CN106933486B (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.)
Guangzhou Shiyuan Electronics Thecnology Co Ltd
Guangzhou Shirui Electronics Co Ltd
Original Assignee
Guangzhou Shiyuan Electronics Thecnology Co Ltd
Guangzhou Shirui Electronics 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 Guangzhou Shiyuan Electronics Thecnology Co Ltd, Guangzhou Shirui Electronics Co Ltd filed Critical Guangzhou Shiyuan Electronics Thecnology Co Ltd
Priority to CN201710148091.7A priority Critical patent/CN106933486B/zh
Publication of CN106933486A publication Critical patent/CN106933486A/zh
Application granted granted Critical
Publication of CN106933486B publication Critical patent/CN106933486B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction 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/0488Interaction 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/04883Interaction 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

本发明公开了一种用于安卓系统的触控实现方法及安卓系统。该方法包括:安卓系统的java层获取用户触摸操作的路径信息;安卓系统的native层获取所述java层转发的所述路径信息;所述native层根据所述路径信息绘制所述触摸操作的触摸轨迹,并将所述触摸轨迹通过屏幕展示给用户。本发明实施例通过采用上述技术方案,通过安卓系统的native层根据用户触摸操作的路径信息绘制用户触摸操作的触摸轨迹,可以提高单指透明笔和多指透明笔的跟指速度,解决多指透明笔书写困难的问题,保证多指透明笔能够正常书写,从而保证安卓系统多指触控功能的实现,提高安卓系统的响应速度以及用户触摸轨迹的绘制速度。

Description

用于安卓系统的触控实现方法及装置
技术领域
本发明涉及信息处理技术领域,尤其涉及一种用于安卓系统的触控实现方法及装置。
背景技术
随着信息处理技术的发展,大型智能平板正在逐渐取代传统教学用的黑板成为教育领域的展示设备之一,透明笔(即可在透明视图实现书写、批注的工具)是大型智能平板中常用的标注工具,人们可以通过透明笔对智能平板中的文字或其他展示内容进行标记、批注或书写等操作。
现有技术中一般是通过在安卓系统的java层启动与透明笔相对应的应用,由java层通过应用程序编程接口(API,Application Programming Interface)调用与修改安卓系统的帧缓存(framebuffer)来实现透明笔的相应功能。但是,当前可以正常使用的安卓透明笔几乎都只能实现简单的单指书写,通常不具有多指书写功能,且在用户书写后需要较长的响应时间才能在智能平板中完整显示用户的触摸轨迹,响应速度较慢,无法保证书写的跟手速度。
发明内容
有鉴于此,本发明实施例提供一种用于安卓系统的触控实现方法及装置,以解决现有技术中透明笔跟手速度较慢、多指书写功能难以实现的技术问题。
第一方面,本发明实施例提供了一种用于安卓系统的触控实现方法,包括:
安卓系统的java层获取用户触摸操作的路径信息;
安卓系统的native层获取所述java层转发的所述路径信息;
所述native层根据所述路径信息绘制所述触摸操作的触摸轨迹,并将所述触摸轨迹通过屏幕展示给用户。
第二方面,本发明实施例还提供了一种用于安卓系统的触控实现装置包括:
java层,用于获取用户触摸操作的路径信息;
native层,用于获取所述java层转发的所述路径信息,根据所述路径信息绘制所述触摸操作的触摸轨迹;
显示屏,用于将所述native层绘制的触摸轨迹通过屏幕展示给用户。
本发明实施例提供的用于安卓系统的触控实现方案,安卓系统的java层获取用户触摸操作的路径信息并将所获取到的路径信息发送到安卓系统的native层,安卓系统的native获取java层转发的路径信息,根据路径信息绘制触摸操作的触摸轨迹,并将所绘制的触摸绘制通过屏幕展示给用户。本发明实施例通过采用上述技术方案,通过安卓系统的native层根据用户触摸操作的路径信息绘制用户触摸操作的触摸轨迹,可以提高单指透明笔和多指透明笔的跟指速度,解决多指透明笔书写困难的问题,保证多指透明笔能够正常书写,从而保证安卓系统多指触控功能的实现,提高安卓系统的响应速度以及用户触摸轨迹的绘制速度。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明实施例一提供的一种用于安卓系统的触控实现方法的流程示意图;
图2为本发明实施例二提供的一种用于安卓系统的触控实现方法的流程示意图;
图3为本发明实施例二提供的一种安卓系统的java层与安卓系统的native层之间的交互示意图;
图4为本发明实施例三提供的一种用于安卓系统的触控实现装置的结构框图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
在进行内容书写或图文标记时,通常需要调用位于安卓系统native层的framebuffer文件。由于安卓系统的权限设置,非系统应用及非超级(root)用户不能对位于安卓系统底层的framebuffer文件进行直接调用与修改。因此,安卓系统的java层只能通过应用程序编程接口(Application Programming Interface,API)间接调用与修改安卓系统底层的framebuffer文件来实现对用户触摸轨迹的绘制,导致透明笔的跟手速度无法保证以及多指透明笔功能难以实现。因此,可以采用本发明实施例提供的用于安卓系统的触控实现方法,通过安卓系统的native对framebuffer文件进行直接调用与修改,以基于该方法来实现安卓系统的多指透明笔书写功能,并提高安卓系统单指透明笔与多指透明笔书写的跟手速度。
实施例一
本发明实施例一提供一种用于安卓系统的触控实现方法。该方法可以由用于安卓系统的触控实现装置执行,其中该装置可由硬件和/或软件实现,一般可集成在具有触摸轨迹绘制功能的终端设备(如智能平板)中。图1是本发明实施例一提供的用于安卓系统的触控实现方法的流程示意图,如图1所示,该方法包括:
S101、安卓系统的java层获取用户触摸操作的路径信息。
具体的,安卓系统的java层可以实时获取用户触摸操作的路径信息,也可以每间隔一个设定周期获取一次用户触摸操作的路径信息。考虑到获取路径信息所需的计算量与内存空间,可选是,可以按照设定周期获取用户触摸操作的路径信息。预设周期的范围可以为15ms-120ms例如,设定周期可以为16ms、50ms或100ms等时间长度,此时,相应的,安卓系统的java层每间隔16ms、50ms或100ms等时间间隔获取一次用户触摸操作的路径信息。
本实施例中,所获取的用户触摸操作的路径信息可以是用户在预设周期内触摸操作的起点及终点信息、路径形状信息、路径拐点信息、路径宽度信息和/或路径颜色信息等。考虑到路径信息的实用性,优选的,所述路径信息包括所述路径的端点信息、影响区域信息以及所述路径对应的触摸点信息。其中,路径的端点信息为在该预设周期内用户触摸操作的起点信息和终点信息;影响区域信息为该预设周期内用户触摸操作所形成的路径的外部轮廓所位于的矩形区域,该矩形区域可以通过路径的起点、终点以及路径的宽度确定;路径对应的触摸点信息为该路径所对应的用户的手指信息,即,该路径为哪一个触摸点触摸形成的路径。当用户单指触摸时,即同一时刻用户在屏幕上的触摸点只有一个,则路径信息中可以不包含路径对应的触摸点信息;当用户多指触摸时,即同一时刻用户在屏幕上的触摸点信息可能为两个或更多个,则路径信息中优选包含路径对应的触摸点信息以便于确定此路径所对应的整体触摸轨迹。
在此,需要说明的是,用户触摸操作的终点信息可以通过采用传感器或红外触摸框检测在路径信息获取时刻用户的触摸点位置获得;用户触摸操作的起点信息可以通过检测在当前预设周期起始时刻用户的触摸点位置获得,也可以直接调用与当前预设周期相邻的前一预设周期的路径信息中用户触摸操作的终点信息作为当前预设周期用户触摸操作的起点信息,此处不作限制。可选的,可以将前一预设周期用户触摸操作的终点信息作为当前周期用户触摸操作的起点信息,从而减少获取用户触摸操作的路径信息时所需的计算量。
S102、安卓系统的native层获取所述java层转发的所述路径信息。
本实施例中,native层根据路径信息绘制用户触摸操作的触摸轨迹时,可以直接从java层获取路径信息,也可以从预先设定的存储位置获取路径信息,相应的,java层在获取到用户触摸操作的路径信息后,可以将该路径信息直接发送到安卓系统的native层以使native层根据该路径信息进行触摸轨迹的绘制,也可以将路径信息发送到预先设定的存储位置。其中,预先设定的存储位置可以是安卓系统中除java层或native层之外的其他的存储位置,也可以是位于java层或native层内的存储位置,即,java层在获取到用户触摸操作的路径信息后,可以将该路径信息发送到其它层或其他存储空间中预先设定的存储位置进行存储,也可以将该路径信息在java层中进行存储或发送到native层中进行存储,此处不作限制。
S103、所述native层根据所述路径信息绘制所述触摸操作的触摸轨迹,并将所述触摸轨迹通过屏幕展示给用户。
本实施例中,根据路径信息所绘制的触摸轨迹可以是与用户的触摸路径完全相同的触摸轨迹,也可以是与用户的触摸路径局部不同、整体趋势相同的触摸轨迹,此处不作限制。例如,在绘制用户触摸操作的触摸轨迹时,可以预先设定触摸轨迹的默认连接方式(如直线连接、折线连接或圆滑曲线连接等),然后根据路径的端点信息采用所设定的默认连接方式连接路径的起点和终点,从而完成该路径信息对应的触摸轨迹的绘制。
本发明实施例一提供的用于安卓系统的触控实现方法,安卓系统的java层获取用户触摸操作的路径信息并将所获取到的路径信息发送到安卓系统的native层,安卓系统的native获取java层转发的路径信息,根据路径信息绘制触摸操作的触摸轨迹,并将所绘制的触摸绘制通过屏幕展示给用户。本发明实施例通过采用上述技术方案,通过安卓系统的native层根据用户触摸操作的路径信息绘制用户触摸操作的触摸轨迹,可以提高单指透明笔和多指透明笔的跟指速度,解决多指透明笔书写困难的问题,保证多指透明笔能够正常书写,从而保证安卓系统多指触控功能的实现,提高安卓系统的响应速度以及用户触摸轨迹的绘制速度。
实施例二
图2为本发明实施例二提供的一种用于安卓系统的触控实现方法的流程示意图。本实施例在上述实施例的基础上进行优化,进一步地,在所述安卓系统的native层获取所述java层转发的所述路径信息之前,还包括:安卓系统的native层基于所述安卓系统的java层的初始化操作确定所述触摸轨迹的基本绘制信息,所述基本绘制信息包括绘制所述触摸轨迹所需的帧缓存信息、全局位图信息以及透明笔对象信息;所述native层根据所述全局位图信息创建临时位图,并根据所述临时位图确定触摸点与路径信息之间的关系图表。
进一步地,所述native层根据所述路径信息绘制所述触摸操作的触摸轨迹,包括:所述native层确定所述路径信息对应的子区域信息,并基于所述子区域信息将所述路径信息写入所述关系图表中生成待绘制路径信息;所述native层根据所述关系图表获取所述临时位图中与所述路径信息对应的位图区域;所述native层清空所述位图区域,并在所述位图区域中绘制与所述待绘制路径信息相对应的路径轨迹;所述native层将所述路径轨迹与目标区域中的像素进行融合以确定所述位图区域的像素信息,所述目标区域为所述全局位图中同所述位图区域相对应的区域;所述native层将所述像素信息写入帧缓存中,并基于所述帧缓存中包含的信息在所述全局位图中绘制所述触摸操作的触摸轨迹。
相应的,如图2所示,本实施例提供的用于安卓系统的触控实现方法包括:
S201、安卓系统的native层基于所述安卓系统的java层的初始化操作确定所述触摸轨迹的基本绘制信息,所述基本绘制信息包括绘制所述触摸轨迹所需的帧缓存信息、全局位图信息以及透明笔对象信息。
本实施例中,native层可以在java层的各初始化操作均完成后再根据java层的初始化操作确定绘制用户触摸操作的触摸轨迹所需的帧缓存信息、全局位图信息和透明笔对象信息;也可以在java层的初始化操作的过程中即根据java层的初始化操作确定绘制用户触摸操作的触摸轨迹所需的帧缓存信息、全局位图信息和/或透明笔对象信息,此处不作限制。
为了减少从java层的初始化操作到用户触摸操作的触摸轨迹绘制完成所需的时间,优选的,所述安卓系统的native层基于所述安卓系统的java层的初始化操作确定所述触摸轨迹的基本绘制信息,包括:安卓系统的native层基于所述安卓系统的java层的应用启动操作获取帧缓存信息和屏幕信息;所述native层获取所述java层创建的全局位图信息和画笔信息;所述native层根据所述屏幕信息和所述画笔信息实例化相应的透明笔对象。
图3所示为安卓系统的java层与安卓系统的native层之间的交互示意图,示例性的,如图3所示,确定基本绘制信息的过程可以为:java层实时监测绘制用户触摸轨迹的应用是否启动,并在应用启动后通过java本地接口(Java Native Interface,JNI)调用的方式发送帧缓存初始化通知到native层,native层在收到java发送的帧缓存初始化通知后将屏幕的尺寸等基本信息赋值到framebuffer中,并将指针调整为指向framebuffer的首地址,以完成对framebuffer相关信息的初始化操作;在发送帧缓存初始化通知到native层后,java层根据屏幕信息创建全局位图(bitmap),并将全局位图的首地址信息发送到native层,native层获取并存储java层发送的全局位图的首地址信息作为全局位图信息以保证java层和native层可以共用java层所创建的全局位图;在将全局位图的首地址信息发送到native层之后,java层开始初始化画笔,如将画笔的宽度、透明度和/或颜色等基本信息初始化为上次关闭时的数值或初始化为默认值,并将画笔的首地址发送到native层,native层获取并存储java层发送的画笔首地址信息作为画笔信息以保证java层和native层可以共用java层同一画笔;在画笔初始化完成后,java层初始化透明笔对象并发送透明笔对象实例化通知到native层,native层在接收到java层发送的透明笔对象实例化通知后,根据画笔信息和屏幕信息实例化透明笔对象。
S202、所述native层根据所述全局位图信息创建临时位图,并根据所述临时位图确定触摸点与路径信息之间的关系图表。
本实施例中,触摸点和路径信息之间的关系图表可以是描述触摸点和路径信息之间的对应关系的数组、图或表等数据结构,例如,可以以二维数组的形式描述触摸点与路径信息之间的对应关系。为保证用户在屏幕上的触摸路径均能够在临时位图中进行绘制,native层所创建的临时位图优选不小于java层所创建的全局位图,即,临时位图的尺寸应大于或等于全局位图的尺寸。考虑到临时位图的实用性,优选的,native层可以根据全局位图的尺寸创建与全局位图大小相同的临时位图。
优选的,所述native层根据所述全局位图信息创建临时位图,并根据所述临时位图确定触摸点与路径信息之间的关系图表,包括:所述native层根据所述全局位图信息创建临时位图,所述临时位图与全局位图大小相同;所述native层根据预设划分规则将所述临时位图划分为预设数量的子区域;所述native层建立各子区域与各触摸点的关系图表。其中,预设划分规则可以根据需要或根据屏幕的尺寸进行设置,如可以将临时位图划分为10*10的100个子区域、5*20的100个子区域或10*20的200个子区域等,此处不作限制。
以将临时位图划分为10*10的100个子区域、关系图表为二维数组为例,确定触摸点与路径信息之间的关系图表的过程可以为:native层根据所获取到的全局位图信息新建一块与全局位图大小相同的临时位图;将全局位图划分为10*10的100个子区域,并按照行、列或其他顺序对划分后的每个子区域进行标记;对安卓系统的各个触摸点进行标记,以安卓系统支持的最大触摸点数(假设为5)为列、以划分的各子区域为行创建一个100行5列的二维数组,或者,以安卓系统支持的最大触摸点数(假设为5)为行、以划分的各子区域为列创建一个5行100列的二维数组,并初始化二维数据的内容为空。其中,对各子区域或各触摸点进行标记时所使用的符号可以是数字、字符或其他符号,各符号可以按照一定顺序进行使用,也可以随机但不重复的使用;二维数组行与列交叉点处的内容为该触摸点在该子区域处的路径信息。
S203、所述java层获取用户触摸操作的路径信息。
S204、所述native层获取所述java层转发的所述路径信息。
S205、所述native层确定所述路径信息对应的子区域信息,并基于所述子区域信息将所述路径信息写入所述关系图表中生成待绘制路径信息。
本实施例中,native层可以首先将路径信息中以像素坐标表示的路径的端点信息和路径的影响区域信息转换到以子区域表示的临时位图中,根据路径的端点信息以及路径的影响区域信息确定该路径信息对应的子区域信息,然后确定该路径信息对应的触摸点信息并将该路径信息分别写入关系图表中该触摸点与该路径信息对应的各子区域的交叉点处以生成待绘制路径信息。其中,待绘制路径信息既包括刚刚写入的该路径信息,也包括关系图标中该触摸点与该路径信息对应的各子区域的交叉点处已存在的其他路径信息。
以关系图表为二维数组为例,假设路径信息A对应的路径为路径a,转换后路径a的起点位于子区域3中,路径a的终点位于子区域5中,从路径a的起点到路径a的终点的连线的外部轮廓还经过了子区域4,则路径信息A对应的子区域信息为子区域3、子区域4和子区域5;确定该路径信息对应的触摸点信息(假设为触摸点m),并将路径信息A分别写入二维数组中触摸点m与子区域3、子区域4和子区域5的交叉点处以生成与子区域3、子区域4和子区域5对应的待绘制路径信息。在此,需要指出的是,如果在将路径信息A写入二维数组之前,二维数组中触摸点m与子区域3、子区域4以及子区域5的交叉点处不存在其他的路径信息,则待绘制路径信息即为路径a对应的路径信息A;如果在将路径信息A写入二维数组之前,二维数据中触摸点m与子区域3、子区域4和/或子区域5的交叉点处存在其他的路径信息(假设子区域4处还存在路径b对应的路径信息B),则待绘制路径信息既包括路径a对应的路径信息A,也包括路径b对应的路径信息B。
S206、所述native层根据所述关系图表获取所述临时位图中与所述路径信息对应的位图区域。
示例性的,假设关系图表中路径信息A同时位于触摸点m与子区域3、子区域4和子区域5的交叉点处,则可以将临时位图中的子区域3、子区域4和子区域5组成的区域确定为临时位图中与路径信息A对应的位图区域,也可以将临时位图中的子区域3、子区域4和子区域5组成的矩形区域确定为临时位图中与路径信息A对应的位图区域,此处不作限制。
S207、所述native层清空所述位图区域,并在所述位图区域中绘制与所述待绘制路径信息相对应的路径轨迹。
本实施例中,在绘制与待绘制路径信息相对应的路径轨迹之前,如果位图区域中不存在其他已绘制完成的路径,则不需要对位图区域进行清空操作;如果位图区域中存在与该触摸点对应的其他已绘制完成的路径(假设为b),由于待绘制路径信息中已包含了路径b对应的路径信息,因此需要对位图区域进行清空操作,以避免绘制待绘制路径信息对应的路径轨迹时,重新绘制的路径b与位图区域中已有的路径b相重叠,导致路径b的轨迹出现加深的现象。
本实施例中,在清空位图区域之前,可以首先判断位图区域中是否存在该触摸点对应的其他的路径,如果存在,则清空该位图区域,如果不存在,则不进行清空操作;也可以不进行位图区域中是否存在该触摸点对应的其他路径信息的判断,不论位图区域中是否存在其他路径信息,均进行清空位图区域的操作,此处不作限制。优选的,可以在绘制与待绘制路径信息相对应的路径轨迹之前,均进行清空与该待绘制路径信息相对应的位图区域的操作以清除位图区域中路径信息对应的触摸点的其他路径轨迹,从而省略进行判断所需的计算量与进行判断所耗费的时间。
S208、所述native层将所述路径轨迹与目标区域中的像素进行融合以确定所述位图区域中的像素信息,所述目标区域为所述全局位图中同所述位图区域相对应的区域。
本实施例中,由于可能存在全局位图中与位图区域相对应的目标区域中已存在其他路径轨迹的情况,该情况下,若将位图区域中的路径轨迹直接写入framebuffer中,则会导致目标区域中已存在的其他的路径轨迹消失,因此需要在将位图区域中的路径轨迹写入frambuffer之前,将位图区域中的路径轨迹与目标区域的像素进行融合,并将融合后形成的像素信息作为位图区域的像素信息。示例性的,在进行融合时,可以获取目标区域的颜色信息,然后将所获取到颜色信息写入位图区域中,从而通过将位图区域与目标区域进行颜色融合的方法实现位图区域与目标区域像素的融合,进而根据融合后的像素确定位图区域中的像素信息。
S209、所述native层将所述像素信息写入帧缓存中,基于所述帧缓存中包含的信息在所述全局位图中绘制所述触摸操作的触摸轨迹,并将所述触摸轨迹通过屏幕展示给用户。
本实施例中,可以首先将位图区域的像素信息写入framebuffer中以使与位图区域中的路径信息相对应的触摸轨迹能够及时显示在屏幕中,从而保证书写的跟手速度;然后将framebuffer中包含的信息写入全局位图中以使与位图区域中的路径信息相对应的触摸轨迹能够长时间显示,避免framebuffer被再次调用绘制其他触摸轨迹时,此次绘制的触摸轨迹消失的情况的出现。
在此,需要说明的是,若安卓系统具有多层缓存,在将像素信息写入framebuffer后,java层应当将写入当前缓冲层的framebuffer中的像素信息复制到其他缓冲层中的framebuffer中以实现对路径影响区域的重绘,从而保证各缓冲层之间信息的同步。在此,也可以由native层通过调用相应的API将写入当前缓冲层的framebuffer中的像素信息复制到其他缓冲层中的framebuffer中来保证各缓冲层之间信息的同步,此处不作限制。优选的,可以通过java层将写入当前缓冲层的framebuffer中的像素信息复制到其他缓冲层中的framebuffer中来实现对路径影响区域的重绘,从而在保证各缓冲层之间信息同步的前提下,简化同步所需的操作步骤,较少同步所耗费的时间(如图3所示)。
本实施例中,若触摸轨迹绘制完成后该触摸轨迹对应的触摸点消失,即该触摸轨迹对应的手指抬起,则native层可以遍历二维数组,删除二维数组中该触摸点对应的行(列);若屏幕中所有触摸点均消失,则可以清空二维数组;若java层监测到绘制用户触摸轨迹的应用关闭(如图3所示),则java层可以发送资源释放通知到native层并删除全局位图,native层接收到资源释放通知后删除临时位图并清空framebuffer。
本发明实施例二提供的用于安卓系统的触控实现方法,通过对临时位图进行切割并对每一个触摸点进行区分,可以有效地减少多指书写中不同触摸点间产生的影响,对于不同触摸点书写时会重叠加深,对同一触摸点的重叠则不会产生影响,从而提高单指透明笔和多指透明笔的跟指速度,解决多指透明笔书写困难的问题,保证多指透明笔能够正常书写,进而保证安卓系统多指触控功能的实现,提高安卓系统的响应速度以及用户触摸轨迹的绘制速度,提高用户的使用体验。
实施例三
本发明实施例三提供一种用于安卓系统的触控实现装置。该装置可由软件和/或实现,一般集成在具有触摸轨迹绘制功能的终端设备(如智能平板)中,可通过执行用于安卓系统的触控实现方法来实现安卓系统的触控功能。图4所示为本实施例提供的用于安卓系统的触控实现装置的结构框图,如图4所示,该装置包括:
java层401,用于获取用户触摸操作的路径信息;
native层402,用于获取所述java层401转发的所述路径信息,根据所述路径信息绘制所述触摸操作的触摸轨迹;
显示屏403,用于将所述native层402绘制的触摸轨迹通过屏幕展示给用户。
本发明实施例三提供的安卓系统,通过安卓系统的java层获取用户触摸操作的路径信息并将所获取到的路径信息发送到安卓系统的native层,通过安卓系统的native获取java层转发的路径信息,根据路径信息绘制触摸操作的触摸轨迹,通过显示屏将native层绘制的触摸轨迹通过屏幕展示给用户。本实施例通过采用上述技术方案,通过安卓系统的native层根据用户触摸操作的路径信息绘制用户触摸操作的触摸轨迹,可以提高单指透明笔和多指透明笔的跟指速度,解决多指透明笔书写困难的问题,保证多指透明笔能够正常书写,从而保证安卓系统多指触控功能的实现,提高安卓系统的响应速度以及用户触摸轨迹的绘制速度。
在上述实施例的基础上,所述native层402还可以用于:在获取所述java层401转发的所述路径信息之前,基于所述java层401的初始化操作确定所述触摸轨迹的基本绘制信息,所述基本绘制信息包括绘制所述触摸轨迹所需的帧缓存信息、全局位图信息以及透明笔对象信息;以及,根据所述全局位图信息创建临时位图,并根据所述临时位图确定触摸点与路径信息之间的关系图表。
进一步地,所述native层402可以包括:第一信息获取单元,用于基于所述安卓系统的java层401的应用启动操作获取帧缓存信息和屏幕信息;第二信息获取单元,用于获取所述java层401创建的全局位图信息和画笔信息;透明笔对象实例化单元,用于根据所述屏幕信息和所述画笔信息实例化相应的透明笔对象。
进一步的,所述native层402可以包括:临时位图创建单元,用于根据所述全局位图信息创建临时位图,所述临时位图与全局位图大小相同;子区域划分单元,用于根据预设划分规则将所述临时位图划分为预设数量的子区域;关系图表建立单元,用于建立各子区域与各触摸点的关系图表。
进一步地,所述native层402还可以包括:关系图表写入单元,用于确定所述路径信息对应的子区域信息,并基于所述子区域信息将所述路径信息写入所述关系图表中生成待绘制路径信息;位图区域获取单元,用于根据所述关系图表获取所述临时位图中与所述路径信息对应的位图区域;路径轨迹绘制单元,用于清空所述位图区域,并在所述位图区域中绘制与所述待绘制路径信息相对应的路径轨迹;像素信息确定单元,用于将所述路径轨迹与目标区域中的像素进行融合以确定所述位图区域的像素信息,所述目标区域为所述全局位图中同所述位图区域相对应的区域;触摸轨迹绘制单元,用于将所述像素信息写入帧缓存中,并基于所述帧缓存中包含的信息在所述全局位图中绘制所述触摸操作的触摸轨迹。
在上述方案中,所述路径信息包括所述路径的端点信息、影响区域信息以及所述路径对应的触摸点信息。
本实施例提供的安卓系统可执行本发明任意实施例所提供的用于安卓系统的触控实现方法,具备执行用于安卓系统的触控实现方法的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的用于安卓系统的触控实现方法。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种用于安卓系统的触控实现方法,其特征在于,包括:
安卓系统的java层获取用户触摸操作的路径信息;
安卓系统的native层获取所述java层转发的所述路径信息;
所述native层根据所述路径信息绘制所述触摸操作的触摸轨迹,并将所述触摸轨迹通过屏幕展示给用户。
2.根据权利要求1所述的方法,其特征在于,在所述安卓系统的native层获取所述java层转发的所述路径信息之前,还包括:
安卓系统的native层基于所述安卓系统的java层的初始化操作确定所述触摸轨迹的基本绘制信息,所述基本绘制信息包括绘制所述触摸轨迹所需的帧缓存信息、全局位图信息以及透明笔对象信息;
所述native层根据所述全局位图信息创建临时位图,并根据所述临时位图确定触摸点与路径信息之间的关系图表。
3.根据权利要求2所述的方法,其特征在于,所述安卓系统的native层基于所述安卓系统的java层的初始化操作确定所述触摸轨迹的基本绘制信息,包括:
安卓系统的native层基于所述安卓系统的java层的应用启动操作获取帧缓存信息和屏幕信息;
所述native层获取所述java层创建的全局位图信息和画笔信息;
所述native层根据所述屏幕信息和所述画笔信息实例化相应的透明笔对象。
4.根据权利要求2所述的方法,其特征在于,所述native层根据所述全局位图信息创建临时位图,并根据所述临时位图确定触摸点与路径信息之间的关系图表,包括:
所述native层根据所述全局位图信息创建临时位图,所述临时位图与全局位图大小相同;
所述native层根据预设划分规则将所述临时位图划分为预设数量的子区域;
所述native层建立各子区域与各触摸点的关系图表。
5.根据权利要求4所述的方法,其特征在于,所述native层根据所述路径信息绘制所述触摸操作的触摸轨迹,包括:
所述native层确定所述路径信息对应的子区域信息,并基于所述子区域信息将所述路径信息写入所述关系图表中生成待绘制路径信息;
所述native层根据所述关系图表获取所述临时位图中与所述路径信息对应的位图区域;
所述native层清空所述位图区域,并在所述位图区域中绘制与所述待绘制路径信息相对应的路径轨迹;
所述native层将所述路径轨迹与目标区域中的像素进行融合以确定所述位图区域的像素信息,所述目标区域为所述全局位图中同所述位图区域相对应的区域;
所述native层将所述像素信息写入帧缓存中,并基于所述帧缓存中包含的信息在所述全局位图中绘制所述触摸操作的触摸轨迹。
6.根据权利要求1所述的方法,其特征在于,所述路径信息包括所述路径的端点信息、影响区域信息以及所述路径对应的触摸点信息。
7.一种用于安卓系统的触控实现装置,其特征在于,包括:
java层,用于获取用户触摸操作的路径信息;
native层,用于获取所述java层转发的所述路径信息,根据所述路径信息绘制所述触摸操作的触摸轨迹;
显示屏,用于将所述native层绘制的触摸轨迹通过屏幕展示给用户。
8.根据权利要求7所述的装置,其特征在于,所述native层还用于:
在获取所述java层转发的所述路径信息之前,基于所述java层的初始化操作确定所述触摸轨迹的基本绘制信息,所述基本绘制信息包括绘制所述触摸轨迹所需的帧缓存信息、全局位图信息以及透明笔对象信息;以及,
根据所述全局位图信息创建临时位图,并根据所述临时位图确定触摸点与路径信息之间的关系图表。
9.根据权利要求8所述的装置,其特征在于,所述native层包括:
第一信息获取单元,用于基于所述安卓系统的java层的应用启动操作获取帧缓存信息和屏幕信息;
第二信息获取单元,用于获取所述java层创建的全局位图信息和画笔信息;
透明笔对象实例化单元,用于根据所述屏幕信息和所述画笔信息实例化相应的透明笔对象;
临时位图创建单元,用于根据所述全局位图信息创建临时位图,所述临时位图与全局位图大小相同;
子区域划分单元,用于根据预设划分规则将所述临时位图划分为预设数量的子区域;
关系图表建立单元,用于建立各子区域与各触摸点的关系图表。
10.根据权利要求9所述的装置,其特征在于,所述native层还包括:
关系图表写入单元,用于确定所述路径信息对应的子区域信息,并基于所述子区域信息将所述路径信息写入所述关系图表中生成待绘制路径信息;
位图区域获取单元,用于根据所述关系图表获取所述临时位图中与所述路径信息对应的位图区域;
路径轨迹绘制单元,用于清空所述位图区域,并在所述位图区域中绘制与所述待绘制路径信息相对应的路径轨迹;
像素信息确定单元,用于将所述路径轨迹与目标区域中的像素进行融合以确定所述位图区域的像素信息,所述目标区域为所述全局位图中同所述位图区域相对应的区域;
触摸轨迹绘制单元,用于将所述像素信息写入帧缓存中,并基于所述帧缓存中包含的信息在所述全局位图中绘制所述触摸操作的触摸轨迹。
CN201710148091.7A 2017-03-13 2017-03-13 用于安卓系统的触控实现方法及装置 Active CN106933486B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710148091.7A CN106933486B (zh) 2017-03-13 2017-03-13 用于安卓系统的触控实现方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710148091.7A CN106933486B (zh) 2017-03-13 2017-03-13 用于安卓系统的触控实现方法及装置

Publications (2)

Publication Number Publication Date
CN106933486A true CN106933486A (zh) 2017-07-07
CN106933486B CN106933486B (zh) 2020-04-21

Family

ID=59432120

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710148091.7A Active CN106933486B (zh) 2017-03-13 2017-03-13 用于安卓系统的触控实现方法及装置

Country Status (1)

Country Link
CN (1) CN106933486B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112346581A (zh) * 2019-08-07 2021-02-09 南京中兴新软件有限责任公司 一种移动轨迹的绘制方法、装置及计算机可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110050613A1 (en) * 2009-08-25 2011-03-03 Chun Jiang Method of using electronic book device as touch input device and device thereof
CN103365559A (zh) * 2012-04-09 2013-10-23 腾讯科技(深圳)有限公司 一种绘制滑动轨迹的方法及移动终端
CN104035617A (zh) * 2014-06-10 2014-09-10 广州视睿电子科技有限公司 多通道平板设备的书写笔迹绘制方法和系统
CN104778075A (zh) * 2015-04-03 2015-07-15 北京奇虎科技有限公司 Android系统中native层调用Java层API的方法和装置
CN105518587A (zh) * 2014-05-30 2016-04-20 华为技术有限公司 终端设备显示方法和终端设备
CN105807966A (zh) * 2014-12-30 2016-07-27 鸿合科技有限公司 一种触摸屏事件的获取方法及装置
CN105807967A (zh) * 2014-12-30 2016-07-27 鸿合科技有限公司 一种电子白板的书写方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110050613A1 (en) * 2009-08-25 2011-03-03 Chun Jiang Method of using electronic book device as touch input device and device thereof
CN103365559A (zh) * 2012-04-09 2013-10-23 腾讯科技(深圳)有限公司 一种绘制滑动轨迹的方法及移动终端
CN105518587A (zh) * 2014-05-30 2016-04-20 华为技术有限公司 终端设备显示方法和终端设备
CN104035617A (zh) * 2014-06-10 2014-09-10 广州视睿电子科技有限公司 多通道平板设备的书写笔迹绘制方法和系统
CN105807966A (zh) * 2014-12-30 2016-07-27 鸿合科技有限公司 一种触摸屏事件的获取方法及装置
CN105807967A (zh) * 2014-12-30 2016-07-27 鸿合科技有限公司 一种电子白板的书写方法及装置
CN104778075A (zh) * 2015-04-03 2015-07-15 北京奇虎科技有限公司 Android系统中native层调用Java层API的方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112346581A (zh) * 2019-08-07 2021-02-09 南京中兴新软件有限责任公司 一种移动轨迹的绘制方法、装置及计算机可读存储介质
WO2021023110A1 (zh) * 2019-08-07 2021-02-11 南京中兴新软件有限责任公司 一种移动轨迹的绘制方法、终端、装置及计算机可读存储介质

Also Published As

Publication number Publication date
CN106933486B (zh) 2020-04-21

Similar Documents

Publication Publication Date Title
US10157593B2 (en) Cross-platform rendering engine
US4633436A (en) Real-time rub-out erase for an electronic handwriting facility
US20090091547A1 (en) Information display device
JP3544666B2 (ja) オブジェクト指向ディスプレイ・システム
JP4602487B2 (ja) グラフィックオブジェクトのグループを作成し操作するための方法及びコンピュータ制御グラフィックディスプレイシステム
CN109739372B (zh) 用于手写输入设备的图形绘制方法及手写阅读设备
KR930001926B1 (ko) 표시 제어방법 및 그 장치
JP2007213589A (ja) 視覚化したメモを処理する方法、および、電子装置
CN110174991B (zh) 高亮笔处理方法及装置
US7924284B2 (en) Rendering highlighting strokes
CN108959201B (zh) 电子书阅读器手写笔迹的绘制方法及电子书阅读器
US10855481B2 (en) Live ink presence for real-time collaboration
US20190102079A1 (en) Enhanced digital ink erasing
JP2003308310A (ja) 表示方法、表示装置、表示プログラム、および表示プログラムを記録した記録媒体
CN106933486A (zh) 用于安卓系统的触控实现方法及装置
KR20080031595A (ko) 오프스크린 버퍼링 관리 장치 및 방법
CN109117072A (zh) 书写区域控制方法和系统、书写方法和系统及交互智能平板
US9323431B2 (en) User interface for drawing with electronic devices
CN112860112A (zh) 电子白板的笔迹擦除方法、装置、电子设备及存储介质
JPS60130795A (ja) デ−タ表示装置
JP6510705B2 (ja) 表示装置、表示方法及び表示用プログラム並びに電子黒板
JP3674164B2 (ja) 表示装置及び表示方法
CN117608720A (zh) 独立书写操作方法、装置、电子设备和存储介质
JPH0445487A (ja) 合成表示方法およびその装置
JP2005011372A (ja) 表示装置および方法

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