The disclosed embodiments relate to the field of virtual keyboards for electronic devices.
Computing devices, particularly portable computing devices and other small form-factor computing devices, often require a keyboard for inputting characters into one or more text fields or other input areas that are displayed on the device. Some of these portable computing devices have keyboards on the face of the device while others have keyboards that slide in and out from the computing device.
In other portable computing devices, particularly those with touch sensitive displays, virtual keyboards are rendered directly on the display. When a user actuates a portion of the touch sensitive display that corresponds to a character key of the virtual keyboard, the character is output on the display. However, one drawback to currently available virtual keyboards is that the size of the virtual keyboard and corresponding character keys is static. Therefore, a user may not be able to adjust the size of the virtual keyboard according to the user's preference.
Embodiments described herein disclose a system and method for resizing a virtual keyboard of a computing device. According to an embodiment, the virtual keyboard may be sized or resized based on user input, such as, for example, selecting a preset size from a plurality of preset sizes. Once the user has selected the desired size, the virtual keyboard is rendered on the display in the desired size.
In another embodiment, the virtual keyboard may be manually resized by a user. In such embodiments, the user may manually resize the virtual keyboard using a dragging motion on a touch sensitive display of a device on which the virtual keyboard has been rendered. The size of the virtual keyboard is determined based on the dragging motion and the virtual keyboard is output on a display in the desired size.
In another embodiment, the virtual keyboard may be configured to display a plurality of rows, with each row having a plurality of virtual character keys. In certain embodiments, additional virtual character keys may be output on the display based on user input. The user input may correspond to a user long-pressing one or more virtual character keys. In such embodiments, the additional virtual character keys may include characters having accent marks that are not typically displayed on standard QWERTY keyboards. In addition to displaying the additional characters, one or more of the additional characters and corresponding virtual character keys may be capitalized when a user actuates a secondary virtual character key.
Still further, the virtual keyboard may include one or more hit regions that correspond to the one or more virtual character keys. Thus, as the virtual keyboard and the corresponding virtual character keys are sized or resized, the hit regions corresponding to each of the virtual character keys are sized or resized accordingly.
As used herein, the term “virtual” means “computer-generated”, such as on a display surface or other interactive medium.
Additionally, the term “resize”, “size” or variations thereof, in the context of “virtual keyboard” means altering a size of one dimension of the virtual keyboard relative to another dimension.
As used herein, the terms “programmatic”, “programmatically” or variations thereof mean through execution of code, programming or other logic. A programmatic action may be performed with software, firmware or hardware, and generally without user-intervention, albeit not necessarily automatically, as the action may be manually triggered.
One or more embodiments described herein may be implemented using programmatic elements, often referred to as modules or components, although other names may be used. Such programmatic elements may include a program, a subroutine, a portion of a program, or a software component or a hardware component capable of performing one or more stated tasks or functions. As used herein, a module or component, can exist on a hardware component independently of other modules/components or a module/component can be a shared element or process of other modules/components, programs or machines. A module or component may reside on one machine, such as on a client or on a server, or may alternatively be distributed amongst multiple machines, such as on multiple clients or server machines. Any system described may be implemented in whole or in part on a server, or as part of a network service. Alternatively, a system such as described herein may be implemented on a local computer or terminal, in whole or in part. In either case, implementation of system provided for in this application may require use of memory, processors and network resources (including data ports, and signal lines (optical, electrical etc.), unless stated otherwise.
Furthermore, one or more embodiments described herein may be implemented through the use of instructions that are executable by one or more processors. These instructions may be carried on a computer-readable medium. Machines shown in figures below provide examples of processing resources and computer-readable mediums on which instructions for implementing one or more embodiments can be carried and/or executed. In particular, the numerous machines shown with one or more embodiments include processor(s) and various forms of memory for holding data and instructions. Examples of computer-readable mediums include permanent memory storage devices, such as hard drives on personal computers or servers. Other examples of computer storage mediums include portable storage units, such as CD or DVD units, flash memory (such as carried on many cell phones and personal digital assistants (PDAs)), and magnetic memory. Computers, terminals, network enabled devices (e.g. portable devices such as cell phones) are all examples of machines and devices that utilize processors, memory, and instructions stored on computer-readable mediums.
According to an example shown by
According to some embodiments, the display surface 110 can be drawn in portrait or landscape orientations. The virtual keyboard 120 may be presented in either direction, stretched or otherwise dimensioned to occupy a designated portion of the overall display screen in either orientation. The virtual keyboard 120 may be sizable in either portrait or landscape orientations.
In variations, the virtual keyboard 120 is sizable or resizable in a particular orientation, in response to other than user input. For example, the virtual keyboard 120 may be sizable/resizable based on events such as sensor input (e.g. proximity of skin or contact), application events (e.g. application launch) or mode settings.
As will be discussed in greater detail below, the virtual keyboard 200 may be sized or resized based on user input. The user input may correspond to a user selecting a preset size from a plurality of sizes. Alternatively, a user may manually adjust the size of the virtual keyboard 200 when displayed using a dragging motion or other gesture on or near the touch sensitive display.
As shown in each of
Although the virtual keyboard 200 is shown in each of
Alternatively, one or more of the plurality of rows 110 of the virtual keyboard 200 may be selectively hidden and revealed to a user based on user preference. For example, the row containing the virtual character keys 220 corresponding to the numbers from 1-0 may be hidden until a user performs a particular stroke or motion on the touch sensitive display or actuates a particular virtual character key 220. In response to the particular stroke or motion or in response to the actuation of a particular key, the hidden row is displayed. When the hidden row is displayed in response to the motion, the hidden row may remain visible until the user performs an action to once again hide the displayed row.
In certain embodiments, the virtual keyboard 200 may be resized by a user when the virtual keyboard is output on a display of the device regardless of the orientation of the device. For example, the user may resize the virtual keyboard 200 when the device is in a landscape orientation or a portrait orientation. In another embodiment, the virtual keyboard 200 may be sized when the virtual keyboard 200 is hidden from view.
Regardless of the orientation of the device and whether the virtual keyboard is displayed, a user may size or resize the virtual keyboard 200 by selecting one preset size from a plurality of preset sizes. For example, the user may be presented a plurality of preset sizes. The preset sizes may include sizes that range from extra small to large. For example,
Certain embodiments provide that the user may manually resize the virtual keyboard 200 when the virtual keyboard 200 has been rendered on a display of the device. The manual resizing of the virtual keyboard is accomplished by a user touching a virtual handle or other icon on the virtual keyboard 200 and dragging the virtual handle or icon in a particular direction. Based on the direction of the dragging motion, the size virtual keyboard 200 is either enlarged or reduced. Once the desired size has been achieved, the user releases the virtual handle or icon and the virtual keyboard 200 remains at the desired size.
As briefly discussed above, the virtual keyboard 200 may be sized when the virtual keyboard 200 is hidden from view. In such instances, a user may access an options menu and may be provided a list of preset sizes. As described above, the preset sizes may include one or more sizes in the range from extra-small to large. In another embodiment, a user may input a desired size based on the number of pixels of the virtual keyboard 200, a desired viewable area of the display, and other such parameters. Thus, when the virtual keyboard 200 is subsequently rendered on the display, the virtual keyboard 200 will be rendered in the user selected size.
Referring back to
For example, when comparing the “Regular” size of the virtual keyboard 200 of
As the virtual keyboard 200 increases or decreases in size, each of the plurality of virtual character keys 220 of the virtual keyboard 200 also increase and decrease in size. Referring back to each of
To reduce the size of each of the virtual character keys 220, one or more pixels may be removed from at least one of the outer edges of each of the virtual character keys 220. Conversely, when the size of each of the virtual character keys 220 is enlarged, one or more pixels may be added to at least one of the outer edges of each of the virtual character keys 220.
For example, when the virtual character keys 220 are sized or resized, the width of each of the virtual character keys 220 may remain constant while the height of the each of the virtual character keys 220 is scaled accordingly. Alternatively, both the height and width of each of the plurality of character keys 220 may be scaled based on the overall size change of the virtual keyboard. Thus, if the virtual keyboard is resized from “Large” to “Extra Small”, pixels from all sides of each of the virtual character keys 220 are removed (e.g., both the width and height of the virtual character keys 220 are reduced).
In certain embodiments, each of the virtual character keys 220 of the virtual keyboard 200 may be scaled from a first size to a second size when the device on which the virtual keyboard 200 is displayed is moved from a landscape orientation to a portrait orientation and vice versa. However, although each of the virtual character keys are scaled based on an orientation of the device, the scaled virtual character keys 220 are equivalent to the non-scaled virtual character keys 220 of the previous orientation. For example, if the device on which the virtual keyboard is rendered is in a landscape orientation, and the user has selected a “Large” sized virtual keyboard 200, each of the virtual character keys 220 may have a width of x and a height of y. When the device on which the virtual keyboard 200 is rendered is moved from the landscape orientation to a portrait orientation, the size of each of the virtual character keys 220 may be scaled such that each of the virtual character keys 220 now has a width of x′ and a height of y′ where 1) x′ is less than x and y′ is less than y, and 2) the width x′ and the height y′ are equivalent to the “Large” preset size of the virtual keyboard 200 when the device is in the portrait orientation.
In another embodiment, a user may configure one or more settings of the device such that the virtual keyboard 200 is displayed in a first size (e.g., Extra-Small) when in a first orientation and a second size (e.g., Large) when the device is in a second orientation. For example, a user may want the virtual keyboard 200 to be rendered in the “Extra Small” preset size when the device is in a landscape orientation and the “Large” preset size when the devices is in the landscape orientation.
In certain embodiments, as the size of each of the virtual character keys 220 of the virtual keyboard 200 increase or decrease, the spacing or thickness of a region between each of the virtual characters keys 220 may also increase or decrease. For example, if the user has selected a “Small” size virtual keyboard 200, such as shown in
For example, if the user has selected a “Small” size virtual keyboard 200 and actuates a virtual character key 220 corresponding to the character “s”, the extra spacing between each of the virtual character keys 220 may prevent a user from accidentally or unintentionally hitting a virtual character key 220 corresponding to the neighboring “d”, “e”, “w”, “a”, “z”, or “x” virtual character keys.
The method 300 for resizing the virtual keyboard 200 begins when user input corresponding to a desired size of the virtual keyboard is received 310. In certain embodiments, the user input may correspond to a selection of a desired size from a plurality of preset sizes. The preset sizes may include a “Regular” size, such as shown in
In another embodiment, a user may be able to manually resize the virtual keyboard 200 by selecting an icon or a virtual handle of the virtual keyboard 200 and dragging the icon or handle to a particular position on the display. As the user drags the virtual handle, the size of the virtual keyboard 200 increases or decreases. When the user has enlarged or reduced the virtual keyboard 200 to the desired size, the user may release the virtual handle and the virtual keyboard 200 is resized based on the user input.
Although a virtual handle or icon is specifically mentioned, it is contemplated that other gestures or actions may be made by the user on the touch sensitive display to indicate that the user wishes to resize the virtual keyboard 200. Such gestures may include placing one or more fingers on an area of the touch sensitive display and performing a particular motion, such as, for example, moving two fingers apart or closer together.
In another embodiment, the user input may correspond to a user dragging an icon or a virtual handle associated with the virtual keyboard 200 from a first range to a second range, where the first range corresponds to a first preset size and where the second range corresponds to a second preset size. For example, if the current size of the virtual keyboard 200 was set to a “Small” size, and the user drags the virtual handle or icon of the virtual keyboard 200 in a manner consistent with reducing the size of the virtual keyboard 200, the size of the virtual keyboard 200 is reduced from the preset “Small” size shown in
In yet another embodiment, each of the preset sizes (e.g., Regular, Large, Small, and Extra Small) may have an associated range. Thus, when the user manually resizes the virtual keyboard 200, and the size of the virtual keyboard 200 falls within the range associated with one of the preset sizes, the virtual keyboard 200 is resized accordingly. Therefore, a user may manually resize the virtual keyboard 200 from, for example, the “Extra Small” size to the “Large” size in a single motion.
For example, the “Large” preset size may be associated with a first range (e.g., 60% or more of the viewable area), the “Regular” preset size may be associated with a second range (e.g., between 50% and 60% of the viewable area), the “Small” preset size may be associated with a third range (e.g., between 40% and 50% of the viewable area) and the “Extra Small” preset size may be associated with a fourth range (e.g., less than 40% of the viewable area). If the user is manually resizing the virtual keyboard 200 using a virtual handle or icon and resizes the virtual keyboard 200 to size such that the virtual keyboard 200 occupies 45% of the viewable area 230 (
Once the user input has been received, the size of the virtual keyboard 200 is determined based on the user input 320. In certain embodiments, this determining step may include determining which of the preset sizes (e.g., “Regular”, “Large”, “Small”, or “Extra Small”) should be used when rendering the virtual keyboard 200 on the display after the user has manually resized the virtual keyboard such as discussed above. Additionally, the size of a graphical area of each virtual character keys 220 (
As will be discussed in greater detail below, each of the virtual character keys 220 also has a corresponding hit region. Thus, as the size of the virtual keyboard 200 and virtual character keys 220 increases or decreases, the hit region corresponding to each of the virtual character keys 220 may also increase or decrease. When the user input has been received and the size of the virtual keyboard 200 has been determined, the virtual keyboard 200, in the selected size, is output on the display 330 of the device.
In certain embodiments, the size of the virtual keyboard 200 may also be determined based on the content that is displayed. For example, if a user is viewing content on the display that includes one or more editable text fields, the virtual keyboard 200 may be automatically sized such that most, if not all of the editable text fields are viewable on the display.
Examples of additional characters include characters that have accent marks that are used in foreign languages, such as, for example, characters in French, Spanish, Italian, Polish, Portuguese, etc. For example, additional characters that may be available for the standard English character “e” may include “{tilde over (e)}” “è” “ë” “ê” “é” and “è”. Although specific examples of languages and corresponding characters have been given, it is contemplated that additional characters for any number of languages may be available for a given English equivalent character.
When user actuation of a virtual character key 220 has been detected, a determination is made as to whether the actuation of the virtual character key 220 exceeds a predetermined time period 355. In certain embodiments, the predetermined time period may be one second or longer, two seconds or longer, or three seconds or longer. In another embodiment, the predetermined time period may be set by a user.
If the user actuation of the virtual character key 220 does not exceed the predetermined time period (e.g., the user touches and releases the virtual character key without performing a long-press), the character corresponding to the actuated virtual character key 220 is output on a portion of the display 360, such as, for example, the viewable area 230 (
If however, it is determined that the user has actuated the virtual character key 220 for the predetermined time period (e.g., the user performs a long-press of the virtual character key 220), additional virtual character keys corresponding to the actuated virtual character key 220 are rendered on the display 370.
Referring to
As discussed above, the breakout box 420 is displayed in response to a user actuating a virtual character key 410 for a predetermined amount of time. Thus, when a user long-presses a virtual character key 410 containing markings 430, the breakout box 420 is displayed. However, if the user long-presses a virtual character key 410 without the markings 430, the character corresponding to the virtual character key 410 is output on the display.
As shown in
In certain embodiments, the breakout box 420 includes one or more additional virtual character keys 415. The additional virtual character keys 415 may include characters that have accent marks that correspond to the character of the actuated virtual character key 410. As discussed above, the virtual character key 410 may correspond to the English character “e”. Thus, when the virtual character key 410 is actuated for the predetermined amount of time, a breakout box 420 having additional character keys 415 with accented characters “{tilde over (e)}” “è” “ë” “ê” “é38 and “è” may be rendered on the display.
Referring back to
The keypad may also be operated in an auto-cap mode, in which the first letter of each word is capitalized. In such situations, the capitalization of the additional characters will be done automatically, without “shift” or “caps lock” involved. The keyboard may be operated with logic that identifies the text that is entered at a current instance in a text field and the position of the cursor in that text field (e.g. word). The logic may be triggered by a secondary key, by context and/or by user input.
Referring to
In certain embodiments, if the user has actuated the secondary character key 440 prior to long-pressing a virtual character key such that all of the virtual character keys are displayed as capitalized characters, and then the user long-presses one of the virtual character keys, the breakout box will display the additional characters as capitalized additional characters.
Once the capitalized additional characters have been rendered on the display, the user may actuate one or more of the additional virtual character keys and the corresponding accented additional character is output on the display.
In certain embodiments, if the user actuates a second virtual character key that is not a secondary key (e.g., a virtual “shift” key or virtual “caps lock” key) when the breakout box 420 is displayed, the character corresponding to the virtual character key that was actuated will be rendered on the display and the breakout box 420 is hidden. In another embodiment, the breakout box remains displayed until the user manually closes the breakout box 420 such as, for example, by clicking on an icon to indicate that the user is finished using the additional characters displayed in the breakout box or by actuating the virtual character key 410 for a predetermined amount of time. In another embodiment, a user may opt to replace the virtual character key with the selected additional virtual character key.
Although the virtual keyboard 500 shows the various hit regions 510 corresponding to each of the virtual character keys 520, it is also contemplated that the virtual keyboard 500 may be output on a display in the manner shown in
Other embodiments described herein may apply to numerous kinds of portable or small form-factor computing devices. One type of portable computing device that may be configured to include embodiments described herein includes a computer telephony device, such as a cellular phone or portable device with voice-telephony applications (sometimes called “smart phone”). A computing device such as described may provide functionality for messaging, web browsing, media playback, personal information management (e.g. such as contact records management, calendar applications, tasks lists), image or video/media capture and other functionality.
Specific types of messaging that may be performed include messaging for email applications, Short Message Service (SMS) messages, Multimedia Message Service (MMS) messages, and proprietary voice exchange applications (such as SKYPE). Still further, other types of computing devices contemplated with embodiments described herein include laptop or notebook computers, ultra-portable computers, personal digital assistants, and other multi-functional computing devices.
Still further, one or more embodiments may be implemented through any type of computing device such as a desktop computer that is configured to include real-time voice data exchange (e.g. through use of Internet Protocol telephony). Still further, other types of computer telephony devices exist, including standalone devices that connect directly to a telephone network (whether Internet Protocol or Public Switch Telephony System (PSTN)) and provide software interfaces and applications.
According to an embodiment, the device 700 may include one or more processors 710 (as processing resources), memory resources 720, one or more wireless communication ports 730, and various other input/output features, including a display assembly 740, a speaker 742, a microphone 744 and other input/output mechanisms 746. In certain embodiments, the one or more processors 710 are configured to receive input from the input/output mechanism 746. In certain embodiments, the input received from the input/output mechanism 746 may correspond to user input regarding the sizing of the virtual keyboard. Once the input is received by the processor 710, the processor 710 generates virtual keyboard output and transmits the output to the display 740. The processor also issues instructions to the display 740 which causes the display 740 to render the virtual keyboard according to the output. According to one or more embodiments, the display assembly 740 includes a touch-sensitive display interface to receive human contact (or close proximity) as input. More specifically, the display assembly 740 provides an interface by which interact with a virtual keyboard such as described by various embodiments herein.
It is contemplated for embodiments described herein to extend to individual elements and concepts described herein, independently of other concepts, ideas or systems, as well as for embodiments to include combinations of elements recited anywhere in this application. Although illustrative embodiments have been described in detail herein with reference to the accompanying drawings, it is to be understood that the disclosure is not limited to those precise embodiments. As such, many modifications and variations will be apparent to practitioners skilled in this art. Accordingly, it is intended that the scope of the disclosure be defined by the following claims and their equivalents. Furthermore, it is contemplated that a particular feature described either individually or as part of an embodiment can be combined with other individually described features, or parts of other embodiments, even if the other features and embodiments make no mention of the particular feature. This, the absence of describing combinations should not preclude the inventor from claiming rights to such combinations.
This application claims the benefit of priority under 35 U.S.C. 119(e) to Provisional Application Ser. No. 61/440,381, filed Feb. 7, 2011, titled SIZEABLE VIRTUAL KEYBOARD FOR PORTABLE COMPUTING DEVICES, which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61440381 | Feb 2011 | US |