Computing devices have been designed with various different input mechanisms that allow a computer user to issue commands and/or input data. While portable devices continue to become more popular, user expectations have increased with respect to the usability and functionality of portable input mechanisms.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that solve any or all disadvantages noted in any part of this disclosure.
Various embodiments related to virtual keyboards with staggered keys are disclosed herein. For example, one disclosed embodiment provides for a computing system that includes a touch display and a virtual keyboard visually presented by the touch display. The virtual keyboard includes one or more rows of staggered virtual-touch-input keys. The computing system further includes a touch-to-key assignment module configured to assign a touch directed to the virtual keyboard and recognized by the touch display to a virtual-touch-input key.
As described in detail below, virtual keyboard 104 includes staggered keys that may facilitate user input. As an example, in embodiments in which the virtual keyboard has a relatively small size, staggered keys may reduce keying errors resulting from large fingers, or other objects used to effectuate touch input, accidentally striking a key that is not intended to be struck. As an example, as shown in
As shown at 114 for purposes of comparison, a virtual keyboard without staggered keys may exacerbate potential difficulties in resolving which of two or more touched keys is intended to be selected. In particular, a touch region 116 is shown overlapping a similarly-sized portion of the A-key as compared to touch region 112. However, without staggered keys, touch region 116 overlaps a greater portion of the E-key and the S-key, and now overlaps a portion of the W-key. Therefore, key strike identification may be more difficult with an unstaggered virtual keyboard than with a virtual keyboard having staggered keys.
While
Each row of staggered virtual-touch-input keys includes a first set of keys aligned with a first offset and a second set of keys aligned with a second offset. As an example, in top row 202 the Q-key, the E-key, the T-key, the U-key, and the O-key are aligned with a downward offset 222; while the W-key, the R-key, the Y-key, the I-key, and the P-key are aligned with an upward offset 224. As used herein, the term offset is used to describe a line or other anchor that is spaced apart from a central line or other anchor. For example, downward offset 222 is spaced below average-row-line 226, and upward offset 224 is spaced above average-row-line 226 by an equal distance. The average-row-line or other anchor from which the offsets are spaced may spatially split the distance between the offsets. The offsets may be spaced virtually any distance from the average-row-line. In the illustrated embodiment, the offsets are spaced at approximately 20% of the height of the virtual-touch-input keys. Various different portions of a key may be aligned with an offset, including, but not limited to, a centroid of the key.
As shown in
Expanding on the key description of top row 202 of
As shown in
For example,
As shown in
In some embodiments, the herein described methods and processes for visually presenting a virtual keyboard and/or processing touch input directed to the virtual keyboard may be tied to a computing system. As an example,
Logic subsystem 502 may include one or more physical devices configured to execute one or more instructions. For example, the logic subsystem may be configured to execute one or more instructions that are part of one or more programs, routines, objects, components, data structures, or other logical constructs. Such instructions may be implemented to perform a task, implement a data type, transform the state of one or more devices, or otherwise arrive at a desired result. The logic subsystem may include one or more processors that are configured to execute software instructions. Additionally or alternatively, the logic subsystem may include one or more hardware or firmware logic machines configured to execute hardware or firmware instructions. The logic subsystem may optionally include individual components that are distributed throughout two or more devices, which may be remotely located in some embodiments.
Data-holding subsystem 504 may include one or more physical devices configured to hold data and/or instructions executable by the logic subsystem to implement the herein described methods and processes. When such methods and processes are implemented, the state of data-holding subsystem 504 may be transformed (e.g., to hold different data). Data-holding subsystem 504 may include removable media and/or built-in devices. Data-holding subsystem 504 may include optical memory devices, semiconductor memory devices, and/or magnetic memory devices, among others. Data-holding subsystem 504 may include devices with one or more of the following characteristics: volatile, nonvolatile, dynamic, static, read/write, read-only, random access, sequential access, location addressable, file addressable, and content addressable. In some embodiments, logic subsystem 502 and data-holding subsystem 504 may be integrated into one or more common devices, such as an application specific integrated circuit or a system on a chip.
Touch-display subsystem 506 may be used to present a visual representation of data held by data-holding subsystem 504 (e.g., present a virtual keyboard). As the herein described methods and processes change the data held by the data-holding subsystem, and thus transform the state of the data-holding subsystem, the state of touch-display subsystem 506 may likewise be transformed to visually represent changes in the underlying data. Furthermore, touch-display subsystem 506 may be used to recognize user input in the form of touches. Such touches may be positionally correlated to an image presented by the touch-display subsystem and assigned different meaning depending on the position of the touch. Touch-display subsystem 506 may include one or more touch-display devices utilizing virtually any type of display and/or touch-sensing technology. Such touch-display devices may be combined with logic subsystem 502 and/or data-holding subsystem 504 in a shared enclosure, or such touch-display devices may be peripheral touch-display devices.
Logic subsystem 502, data-holding subsystem 504, and touch-display subsystem 506 may cooperate to visually present a virtual keyboard with staggered keys. Furthermore, the logic subsystem and the data-holding subsystem may cooperate to form a touch-to-key assignment module 510, a staggered-proximity-distance-detection module 512, and/or a visual-feedback module 514.
The staggered-proximity-distance-detection module 512 may be configured to determine, for each virtual-touch-input key struck by a touch (e.g., from a user finger or other object), a staggered-proximity distance from the touch to an offset for that virtual-touch-input key.
The staggered-proximity distance for each key may be calculated as the distance between the offset to which that key is aligned and the point representing the touch region. For example, a distance between a resolved point 604 of a touch region and the downward offset 606 to which the T-key is aligned may be referred to as a staggered-proximity distance 608; a distance between the resolved point 604 of the touch region and the upward offset 610 to which the Y-key is aligned may be referred to as a staggered-proximity distance 612; a distance between the resolved point 604 of the touch region and the downward offset 614 to which the F-key is aligned may be referred to as a staggered-proximity distance 616; and a distance between the resolved point 604 of the touch region and the upward offset 618 to which the G-key is aligned may be referred to as a staggered-proximity distance 620.
A touch-to-key assignment module may be configured to assign a touch directed to the virtual keyboard and recognized by the touch display to a virtual-touch-input key. As an example, a touch-to-key assignment module may be configured to assign a touch to the virtual-touch-input key having a shortest staggered-proximity distance. Using
In some embodiments, a touch-to-key assignment module may be configured to assign a touch to the virtual-touch-input key having a largest strike area from the touch. In some embodiments, a combination of strike area and staggered-proximity distance may be used.
In some embodiments, a touch-to-key assignment module may not assign a touch to a virtual-touch-input key until the touch is completed (e.g., a user lifts a finger from the touch display). Further, in some embodiments, a visual appearance of the key that is considered to be ready for selection (e.g., key with shortest staggered-proximity distance and/or largest strike area) may be changed to indicate that that key will be assigned the touch upon completion of the touch. For example, the key may be enlarged and/or shifted so that it may be more easily viewed by a user.
It is to be understood that the configurations and/or approaches described herein are exemplary in nature, and that these specific embodiments or examples are not to be considered in a limiting sense, because numerous variations are possible. The specific routines or methods described herein may represent one or more of any number of processing strategies. As such, various acts illustrated may be performed in the sequence illustrated, in other sequences, in parallel, or in some cases omitted. Likewise, the order of the above-described processes may be changed.
The subject matter of the present disclosure includes all novel and nonobvious combinations and subcombinations of the various processes, systems and configurations, and other features, functions, acts, and/or properties disclosed herein, as well as any and all equivalents thereof.