This disclosure relates generally to devices having touch sensitive surfaces.
Modern mobile devices (e.g., electronic tablets) can run applications that allow a user to capture handwritten notes using a touch sensitive surface. While handwriting on the touch sensitive surface, a typical user may rest their palm or side of their hand on the touch sensitive surface for support, causing the device to register a touch input. To avoid such inadvertent touch input, the user can elevate their hand above the touch surface when writing. This workaround can be awkward and tiring to the user.
One or more regions of a touch sensitive surface can be activated individually by a user. A region defines an active input area for processing touch input events. Any touch event associated with a beginning touch event that is detected in the active area is processed for display. Any touch input event detected outside the active region that is not associated with the beginning touch event is excluded from the processing. In some implementations, a region can be visually delineated by horizontal rule lines of a virtual notebook page. A selector/indicator can be displayed at the left or right end of the region for activating the corresponding region. Once a writing gesture is started in the active region, the writing gesture can extend outside of the active region so long as the writing gesture is made without interruption. When a region is activated by a user touching the selector/indicator, the selector/indicator can be visually augmented to indicate that its corresponding region is active. When the writing gesture is completed by the user, the writing gesture displayed in the active region can be captured and stored for use with other applications.
Particular implementations of region activation for a touch sensitive surface, provides one or more of the following advantages. A user can independently activate one or more regions of a touch sensitive surface to avoid registering inadvertent touch inputs outside the active region. The active regions can be captured and stored for use with other applications.
The details of one or more disclosed implementations are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages will become apparent from the description, the drawings and the claims.
Like reference symbols in the various drawings indicate like elements.
In the example shown, a user interface element 104 is displayed on the left end of each region 102. User interface element 104 is a selector/indicator that can be touched by a user to activate the corresponding region 102. For example, the user can touch user interface element 104 to activate corresponding region 102. Activating a region means that touch events (e.g., writing gestures) initiated in region 102 can be detected and processed for display by a processor of the device, resulting in an immediate, real-time display of the user's handwriting. That is, touch events (e.g., writing gestures) are detected and processed for display in real-time to create the appearance that the user is handwriting on touch sensitive surface 100.
In general, touches started outside of active region 102 are ignored, while touches initiated within active region 102 are used to start a currently active path. The continuation of a touch started within active region 102 (e.g., a writing gesture) causes curves to be added to the currently active path using, for example, a cubic Bézier path generator as described in co-pending U.S. patent application Ser. No. 13/084,355, for “Handwriting Capture Techniques,” filed even date herewith, Attorney Docket No. 18962-0413001/P11005US1. At any given time, only one active path is recognized by the device as a continuation of a touch gesture.
In some implementations, touch screen driver software translates touch signals from hardware (e.g., a capacitive touch screen) into touch events, which can be aggregated into touch gestures using a touch input model. The touch events or gestures can be provided to an operating system or other applications through an Application Programming Interface (API) where the touch events can be further processed.
Generally, user interface element 104 can be any size or shape and located anywhere on touch sensitive surface 100. In the example shown, user interface element 104 is a circle that is visually augmented (e.g., filled with color) when selected to indicate its selection and the active status of its corresponding active region 102. Visually augmenting user interface element 104 can include, but is not limited to changing the color, shape or size of the element, animating the element, highlighting the user interface element or its background, or the like. In some implementations, selection of region 102 can be indicated by audio or force feedback (e.g., a vibration) in addition or in lieu of visual augmentation.
In some implementations, user interface element 104 can be displayed at left or right ends of each region 102 to facilitate selection by left or right-handed users. A settings menu or similar input mechanism can allow users to select the location of user interface element 104 on touch sensitive surface 100. In some implementations, user interface element 104 can be a hardware button.
When the user is finished writing in active region 102, the user can select the “Accept” button 106 to capture the handwritten note in active region 102 and stored in a digital image format (e.g., .png). Only the content drawn within active region 102 is captured. Once captured and stored, the content can be used with other applications. Upon acceptance, active region 102 can be deactivated automatically. A “Clear” button 108 can be used to clear the entire active region 102 of its contents.
In some implementations, process 300 can begin by receiving input selecting region(s) of touch sensitive surface for activation (302). In some implementations, the touch sensitive surface can be a touch sensitive display of a device (e.g., computer, mobile phone, electronic tablet). A region can be selected by touching a selector/indicator corresponding to the region, as described in reference to
The user interface element can be visually augmented to indicate selection of its corresponding region. Other feedback is also possible. For example, audio or force feedback (e.g., a vibration) can be used to indicate selection of a region. A region can be any portion of a touch sensitive surface and have any shape or size. In some implementations, a region can be the writing area between two horizontal rule lines of a virtual notebook page, as shown in
Process 300 can continue by activating the selected region(s) (304). Once activated, any touch input in the active region will be detected and processed by the device for display.
Process 300 can continue by detecting a beginning touch event in the active region (306). A beginning touch event can occur when the user first touches the active region with a finger, stylus or other writing instrument.
Process 300 continues detecting and processing additional touch events in active region(s) associated with the beginning touch event (308). The processing excludes additional touch events detected outside the active region(s) that are not associated with the beginning touch event in the active region(s).
Process 310 continues by receiving input accepting the processed touch events (310), and capturing and storing the processed touch events (312). A user can accept touch events by selecting a virtual button or providing other detectable input. Upon acceptance, the content in the active region can be captured into a digital image and stored (e.g., stored in a container object) for use by other applications.
Sensors, devices, and subsystems can be coupled to peripherals interface 406 to facilitate multiple functionalities. For example, motion sensor 410, light sensor 412, and proximity sensor 414 can be coupled to peripherals interface 406 to facilitate orientation, lighting, and proximity functions of the mobile device. For example, in some implementations, light sensor 412 can be utilized to facilitate adjusting the brightness of touch screen 446. In some implementations, motion sensor 410 (e.g., an accelerometer, gyros) can be utilized to detect movement and orientation of the device 400. Accordingly, display objects or media can be presented according to a detected orientation, e.g., portrait or landscape.
Other sensors can also be connected to peripherals interface 406, such as a temperature sensor, a biometric sensor, or other sensing device, to facilitate related functionalities.
Location processor 415 (e.g., GPS receiver) can be connected to peripherals interface 406 to provide geo-positioning. Electronic magnetometer 416 (e.g., an integrated circuit chip) can also be connected to peripherals interface 406 to provide data that can be used to determine the direction of magnetic North. Thus, electronic magnetometer 416 can be used as an electronic compass.
Camera subsystem 420 and an optical sensor 422, e.g., a charged coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS) optical sensor, can be utilized to facilitate camera functions, such as recording photographs and video clips.
Communication functions can be facilitated through one or more communication subsystems 424. Communication subsystem(s) 424 can include one or more wireless communication subsystems 424. Wireless communication subsystems can include radio frequency receivers and transmitters and/or optical (e.g., infrared) receivers and transmitters. Wired communication system can include a port device, e.g., a Universal Serial Bus (USB) port or some other wired port connection that can be used to establish a wired connection to other computing devices, such as other communication devices, network access devices, a personal computer, a printer, a display screen, or other processing devices capable of receiving or transmitting data. The specific design and implementation of the communication subsystem 424 can depend on the communication network(s) or medium(s) over which device 400 is intended to operate. For example, a mobile device can include communication subsystems 424 designed to operate over a GSM network, a GPRS network, an EDGE network, a WiFi or WiMax network, and a Bluetooth network. In particular, the wireless communication subsystems 424 can include For example, device 400 may include wireless communication subsystems designed to operate over a global system for mobile communications (GSM) network, a GPRS network, an enhanced data GSM environment (EDGE) network, 802. x communication networks (e.g., WiFi, WiMax, or 3G networks), code division multiple access (CDMA) networks, and a Bluetooth™ network. Communication subsystems 424 may include hosting protocols such that the mobile device 400 may be configured as a base station for other wireless devices. As another example, the communication subsystems can allow the device to synchronize with a host device using one or more protocols, such as, for example, the TCP/IP protocol, HTTP protocol, UDP protocol, and any other known protocol.
Audio subsystem 426 can be coupled to a speaker 428 and one or more microphones 430 to facilitate voice-enabled functions, such as voice recognition, voice replication, digital recording, and telephony functions.
I/O subsystem 440 can include touch screen controller 442 and/or other input controller(s) 444. Touch-screen controller 442 can be coupled to a touch screen 446 or pad. Touch screen 446 and touch screen controller 442 can, for example, detect contact and movement or break thereof using any of a number of touch sensitivity technologies, including but not limited to capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with touch screen 446.
Other input controller(s) 444 can be coupled to other input/control devices 448, such as one or more buttons, rocker switches, thumb-wheel, infrared port, USB port, and/or a pointer device such as a stylus. The one or more buttons (not shown) can include an up/down button for volume control of speaker 428 and/or microphone 430.
In one implementation, a pressing of the button for a first duration may disengage a lock of the touch screen 446; and a pressing of the button for a second duration that is longer than the first duration may turn power to mobile device 400 on or off. The user may be able to customize a functionality of one or more of the buttons. The touch screen 446 can also be used to implement virtual or soft buttons and/or a keyboard.
In some implementations, device 110 can present recorded audio and/or video files, such as MP3, AAC, and MPEG files. In some implementations, mobile device 110 can include the functionality of an MP3 player and may include a pin connector for tethering to other devices. Other input/output and control devices can be used.
Memory interface 402 can be coupled to memory 450. Memory 450 can include high-speed random access memory or non-volatile memory, such as one or more magnetic disk storage devices, one or more optical storage devices, or flash memory (e.g., NAND, NOR). Memory 450 can store operating system 452, such as Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, or an embedded operating system such as VxWorks. Operating system 452 may include instructions for handling basic system services and for performing hardware dependent tasks. In some implementations, operating system 452 can include a kernel (e.g., UNIX kernel).
Memory 450 may also store communication instructions 454 to facilitate communicating with one or more additional devices, one or more computers and/or one or more servers. Communication instructions 454 can also be used to select an operational mode or communication medium for use by the device, based on a geographic location (obtained by the GPS/Navigation instructions 468) of the device. Memory 450 may include graphical user interface instructions 456 to facilitate graphic user interface processing; sensor processing instructions 458 to facilitate sensor-related processing and functions; phone instructions 460 to facilitate phone-related processes and functions; electronic messaging instructions 442 to facilitate electronic-messaging related processes and functions; web browsing instructions 464 to facilitate web browsing-related processes and functions; media processing instructions 466 to facilitate media processing-related processes and functions; GPS/Navigation instructions 468 to facilitate GPS and navigation-related processes and instructions; camera instructions 470 to facilitate camera-related processes and functions; region activation instructions 472 for the processes and features described with reference to
Each of the above identified instructions and applications can correspond to a set of instructions for performing one or more functions described above. These instructions need not be implemented as separate software programs, procedures, or modules. Memory 450 can include additional instructions or fewer instructions. Furthermore, various functions of the mobile device may be implemented in hardware and/or in software, including in one or more signal processing and/or application specific integrated circuits.
The described features can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. A computer program is a set of instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result. A computer program can be written in any form of programming language (e.g., Objective-C, Java), including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
Suitable processors for the execution of a program of instructions include, by way of example, both general and special purpose microprocessors, and the sole processor or one of multiple processors or cores, of any kind of computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memories for storing instructions and data. Generally, a computer will also include, or be operatively coupled to, communicate with, one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks.
Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).
To provide for interaction with a player, the features can be implemented on a computer having a display device, such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information to the player. The computer can also have a keyboard and a pointing device such as a game controller, mouse or a trackball by which the player can provide input to the computer.
The features can be implemented in a computer system that includes a back-end component, such as a data server, that includes a middleware component, such as an application server or an Internet server, or that includes a front-end component, such as a client computer having a graphical user interface or an Internet browser, or any combination of them. The components of the system can be connected by any form or medium of digital data communication such as a communication network. Some examples of communication networks include LAN, WAN and the computers and networks forming the Internet.
The computer system can include clients and servers. A client and server are generally remote from each other and typically interact through a network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
One or more features or steps of the disclosed embodiments can be implemented using an API. An API can define on or more parameters that are passed between a calling application and other software code (e.g., an operating system, library routine, function) that provides a service, that provides data, or that performs an operation or a computation. The API can be implemented as one or more calls in program code that send or receive one or more parameters through a parameter list or other structure based on a call convention defined in an API specification document. A parameter can be a constant, a key, a data structure, an object, an object class, a variable, a data type, a pointer, an array, a list, or another call. API calls and parameters can be implemented in any programming language. The programming language can define the vocabulary and calling convention that a programmer will employ to access functions supporting the API. In some implementations, an API call can report to an application the capabilities of a device running the application, such as input capability, output capability, processing capability, power capability, communications capability, etc.
A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made. For example, other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Accordingly, other implementations are within the scope of the following claims.