Some example embodiments of the present invention relate generally to user interface technology and, more particularly, relate to a method and apparatus for controllably zooming a view by predefined amounts in response to a gesture.
The modern communications era has brought about a tremendous expansion of wireline and wireless networks. Computer networks, television networks, and telephony networks are experiencing an unprecedented technological expansion, fueled by consumer demand. Wireless and mobile networking technologies have addressed related consumer demands, while providing more flexibility and immediacy of information transfer.
Current and future networking technologies continue to facilitate ease of information transfer and convenience to users. As such, a mobile terminal may be able to access a substantial amount of content, such as photos or other images, maps, text or other documents, calendars, games and the like. A substantial amount of the content that is accessible by a mobile terminal may be displayed as a view for consideration by the user.
Once a view is displayed, users commonly desire to zoom the view. For example, a user may wish to zoom in an image in order to see a finer level of detail of a portion of the image. Conversely, a user may wish to zoom out in order to see a more expansive field of view, albeit with fewer details. In instances in which a view is displayed upon a touch screen display, the user may provide input regarding zooming of the view by providing a pinching gesture. In this regard, a user may indicate that an image is to be zoomed in by a pinching gesture in which the user's fingers are spread further apart. Alternatively, a user may indicate that an image is to be zoomed out by providing a pinching gesture in which the user's fingers are brought closer together.
In an instance in which the zooming is controlled by a pinching gesture, the amount of zooming may be defined by the magnitude of the pinching gesture, that is, the extent by which the user's fingers move, either toward one another or away from one another. In this regard, greater amounts of zooming may be provided in response to a pinching gesture in which the user's fingers are moved a relatively large amount, while lesser amounts of zooming may be provided in response to a pinching gesture in which the user's fingers are moved by a smaller distance.
In providing direction for the zooming of an image with a pinching gesture, a user may find it difficult to cause an image to be zoomed by a predefined amount. Such difficulty is generally exacerbated in instances in which a touch screen display is relatively small. For example, some touch screen displays, such as those provided by mobile terminals, may be relatively small and the user's interaction with a relatively small touch screen display may be imprecise. For example, a user may provide a pinching gesture with an intent to cause a predefined amount of zooming, such as 100%, 75%, 50% or the like. Because of the relative imprecision in the input provided by a pinching gesture, particularly for a pinching gesture input via a relatively small touch screen display, the actual amount of zooming may be some other amount, such as 97.3% instead of 100%, 63% instead of either 75% or 50% or the like. Not only does such imprecision result in the presentation of a zoomed view that has a different amount of zooming than that desired by the user, but views that are zoomed to such irregular amounts may have visual artifacts, jagged lines or otherwise be of a lower quality than the original view. Further, zooming of a view, such as a map, may also be slower than desired as it may take a sequence of inputs in order to zoom from a country view, to a state view, to a city view to a street view.
A method, apparatus and computer program product are provided to permit a user to utilize a gesture, such as a pinching gesture, to select from among one or more predefined amounts of zooming. As such, a user may more readily cause an view to be zoomed in a desired manner, thereby producing the view anticipated by the user while also potentially reducing visual artifacts, jagged lines and the like in the resulting view. The method, apparatus and computer program product of one example embodiment does not limit a user to the selection of one or more predefined amounts of zooming with the gesture, but also allows the user to select amounts of zooming that are different than the predefined amounts with the gesture. As such, a user may enjoy not only the ability to readily select one or more predefined amounts of zooming with a gesture, but may also enjoy the freedom of selecting any other amount of zooming with the gesture, if so desired.
Having thus described embodiments of the invention in general terms, reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:
The present invention now will be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all embodiments of the inventions are shown. Indeed, these inventions may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like numbers refer to like elements throughout.
Some embodiments of the present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all embodiments of the invention are shown. Indeed, various embodiments of the invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like reference numerals refer to like elements throughout. As used herein, the terms “data,” “content,” “information” and similar terms may be used interchangeably to refer to data capable of being transmitted, received and/or stored in accordance with some embodiments of the present invention. Thus, use of any such terms should not be taken to limit the spirit and scope of embodiments of the present invention.
Additionally, as used herein, the term ‘circuitry’ refers to (a) hardware-only circuit implementations (e.g., implementations in analog circuitry and/or digital circuitry); (b) combinations of circuits and computer program product(s) comprising software and/or firmware instructions stored on one or more computer readable memories that work together to cause an apparatus to perform one or more functions described herein; and (c) circuits, such as, for example, a microprocessor(s) or a portion of a microprocessor(s), that require software or firmware for operation even if the software or firmware is not physically present. This definition of ‘circuitry’ applies to all uses of this term herein, including in any claims. As a further example, as used herein, the term ‘circuitry’ also includes an implementation comprising one or more processors and/or portion(s) thereof and accompanying software and/or firmware. As another example, the term ‘circuitry’ as used herein also includes, for example, a baseband integrated circuit or applications processor integrated circuit for a mobile phone or a similar integrated circuit in a server, a cellular network device, other network device, and/or other computing device.
As defined herein a “computer-readable storage medium,” which refers to a non-transitory, physical storage medium (e.g., volatile or non-volatile memory device), can be differentiated from a “computer-readable transmission medium,” which refers to an electromagnetic signal.
As described below, a method, apparatus and computer program product are provided in accordance with an example embodiment for facilitating zooming of a view in response to a gesture, such as a pinching gesture. While the zooming of an image will be described below, the method, apparatus and computer program product may facilitate zooming of a variety of views in addition to images including views of a map, a calendar or the like. In this regard, a method, apparatus and computer program product of one embodiment of the present invention provide indicators of respective predefined amounts of zooming to facilitate the selection of a predefined amount of zooming with the gesture. However, the method, apparatus and computer program product of one embodiment of the present invention still permit a selection of other amounts of zooming that are not represented by one or more indicators such that a user can freely select any amount of zooming with the gesture.
The mobile terminal 10 may include an antenna 12 (or multiple antennas) in operable communication with a transmitter 14 and a receiver 16. The mobile terminal 10 may further include an apparatus, such as a processor 20 or other processing device (e.g., processor 52 of
In some embodiments, the processor 20 may include circuitry desirable for implementing audio and logic functions of the mobile terminal 10. For example, the processor 20 may be comprised of a digital signal processor device, a microprocessor device, and various analog to digital converters, digital to analog converters, and other support circuits. Control and signal processing functions of the mobile terminal 10 are allocated between these devices according to their respective capabilities. The processor 20 thus may also include the functionality to convolutionally encode and interleave message and data prior to modulation and transmission. The processor 20 may additionally include an internal voice coder, and may include an internal data modem. Further, the processor 20 may include functionality to operate one or more software programs, which may be stored in memory. For example, the processor 20 may be capable of operating a connectivity program, such as a conventional Web browser. The connectivity program may then allow the mobile terminal 10 to transmit and receive Web content, such as location-based content and/or other web page content, according to a Wireless Application Protocol (WAP), Hypertext Transfer Protocol (HTTP) and/or the like, for example.
The mobile terminal 10 may also comprise a user interface including an output device such as a conventional earphone or speaker 24, a ringer 22, a microphone 26, a display 28, and a user input interface, all of which are coupled to the processor 20. The user input interface, which allows the mobile terminal 10 to receive data, may include any of a number of devices allowing the mobile terminal 10 to receive data, such as a keypad 30, a touch display (display 28 providing an example of such a touch display), touch surface either with or without a co-located display or other input device. In embodiments including the keypad 30, the keypad 30 may include the conventional numeric (0-9) and related keys (#, *), and other hard and soft keys used for operating the mobile terminal 10. Alternatively or additionally, the keypad 30 may include a conventional QWERTY keypad arrangement. The keypad 30 may also include various soft keys with associated functions. In addition, or alternatively, the mobile terminal 10 may include an interface device such as a joystick or other user input interface. Some embodiments employing a touch display may omit the keypad 30 and any or all of the speaker 24, ringer 22, and microphone 26 entirely. The mobile terminal 10 further includes a battery 34, such as a vibrating battery pack, for powering various circuits that are required to operate the mobile terminal 10, as well as optionally providing mechanical vibration as a detectable output.
As noted above, the display 28 may be a touch screen display. In this embodiment, the touch screen display may be configured to visually present graphical information to a user. The touch screen display, which may be embodied as any known touch screen display, may also include a touch detection surface configured to enable touch recognition by any suitable technique, such as resistive, capacitive, infrared, strain gauge, surface wave, optical imaging, dispersive signal technology, acoustic pulse recognition, or other like techniques. The touch screen display may include all of the hardware necessary to detect a touch when contact is made with the touch detection surface. A touch event may occur when an object, such as a stylus, finger, pen, pencil or any other pointing device, comes into contact with a portion of the touch detection surface of the touch screen display in a manner sufficient to register as a touch. In this regard, for example, a touch could be a detection of a change in capacitance (e.g., due to physical contact with the surface of the screen or close proximity “hovering” of an object relative to the surface of the screen), pressure on the touch detection surface above a particular pressure threshold over a given area, or the like. The touch screen display may also be configured to generate touch event location data indicating the location of the touch event on the screen. Touch screen display may be configured to provide the touch event location data to other entities (e.g., the processor 20).
In some embodiments, touch screen display may be configured to detect a touch followed by motion across the touch detection surface, which may also be referred to as a gesture. In this regard, for example, the movement of a finger across the touch detection surface of the touch screen display may be detected and touch event location data may be generated that describes the gesture generated by the finger. In other words, the gesture may be defined by motion following a touch thereby forming a continuous, moving touch event defining a moving series of touch positions. The gesture may represent a series of unbroken touch events, or in some cases a combination of separate touch events.
The mobile terminal 10 may further include a user identity module (UIM) 38. The UIM 38 is typically a memory device having a processor built in. The UIM 38 may include, for example, a subscriber identity module (SIM), a universal integrated circuit card (UICC), a universal subscriber identity module (USIM), a removable user identity module (R-UIM), etc. The UIM 38 typically stores information elements related to a mobile subscriber. In addition to the UIM 38, the mobile terminal 10 may be equipped with memory. For example, the mobile terminal 10 may include volatile memory 40, such as volatile Random Access Memory (RAM) including a cache area for the temporary storage of data. The mobile terminal 10 may also include other non-volatile memory 42, which may be embedded and/or may be removable. The memories may store any of a number of pieces of information, and data, used by the mobile terminal 10 to implement the functions of the mobile terminal 10.
An example embodiment of the invention will now be described with reference to
It should also be noted that while
Referring now to
The apparatus 50 may, in some embodiments, be a mobile terminal (e.g., mobile terminal 10) or a fixed communication device or computing device configured to employ an example embodiment of the present invention. However, in some embodiments, the apparatus 50 may be embodied as a chip or chip set. In other words, the apparatus 50 may comprise one or more physical packages (e.g., chips) including materials, components and/or wires on a structural assembly (e.g., a baseboard). The structural assembly may provide physical strength, conservation of size, and/or limitation of electrical interaction for component circuitry included thereon. The apparatus 50 may therefore, in some cases, be configured to implement an embodiment of the present invention on a single chip or as a single “system on a chip.” As such, in some cases, a chip or chipset may constitute means for performing one or more operations for providing the functionalities described herein.
The processor 52 may be embodied in a number of different ways. For example, the processor 52 may be embodied as one or more of various hardware processing means such as a coprocessor, a microprocessor, a controller, a digital signal processor (DSP), a processing element with or without an accompanying DSP, or various other processing circuitry including integrated circuits such as, for example, an ASIC (application specific integrated circuit), an FPGA (field programmable gate array), a microcontroller unit (MCU), a hardware accelerator, a special-purpose computer chip, or the like. As such, in some embodiments, the processor 52 may include one or more processing cores configured to perform independently. A multi-core processor may enable multiprocessing within a single physical package. Additionally or alternatively, the processor 52 may include one or more processors configured in tandem via the bus to enable independent execution of instructions, pipelining and/or multithreading.
In an example embodiment, the processor 52 may be configured to execute instructions stored in the memory device 58 or otherwise accessible to the processor 52. Alternatively or additionally, the processor 52 may be configured to execute hard coded functionality. As such, whether configured by hardware or software methods, or by a combination thereof, the processor 52 may represent an entity (e.g., physically embodied in circuitry) capable of performing operations according to an embodiment of the present invention while configured accordingly. Thus, for example, when the processor 52 is embodied as an ASIC, FPGA or the like, the processor 52 may be specifically configured hardware for conducting the operations described herein. Alternatively, as another example, when the processor 52 is embodied as an executor of software instructions, the instructions may specifically configure the processor 52 to perform the algorithms and/or operations described herein when the instructions are executed. However, in some cases, the processor 52 may be a processor of a specific device (e.g., a mobile terminal or other computing device), such as processor 20 of mobile terminal 10 of
Meanwhile, the communication interface 56 may be any means such as a device or circuitry embodied in either hardware or a combination of hardware and software that is configured to receive and/or transmit data from/to a network and/or any other device or module in communication with the apparatus 50. In this regard, the communication interface 56 may include, for example, an antenna (or multiple antennas) and supporting hardware and/or software for enabling communications with a wireless communication network. Additionally or alternatively, the communication interface 56 may include the circuitry for interacting with the antenna(s) to cause transmission of signals via the antenna(s) or to handle receipt of signals received via the antenna(s). In some environments, the communication interface 56 may alternatively or also support wired communication. As such, for example, the communication interface 56 may include a communication modem and/or other hardware/software for supporting communication via cable, digital subscriber line (DSL), universal serial bus (USB) or other mechanisms.
The user interface 54 may be in communication with the processor 52 to receive an indication of a user input at the user interface 54 and/or to cause provision of an audible, visual, mechanical or other output to the user. As such, the user interface 54 may include, for example, a keyboard, a mouse, a joystick, a display, a head mounted display, a touch screen(s), touch areas, soft keys, a microphone, a speaker, or other input/output mechanisms. Alternatively or additionally, the processor 52 may comprise user interface circuitry configured to control at least some functions of one or more elements of the user interface, such as, for example, a speaker, ringer, microphone, display, and/or the like. The processor 52 and/or user interface circuitry comprising the processor 52 may be configured to control one or more functions of one or more elements of the user interface through computer program instructions (e.g., software and/or firmware) stored on a memory accessible to the processor 52 (e.g., memory device 58, and/or the like).
Referring now to
In accordance with an example embodiment of the present invention, the apparatus 50 may include means, such as the processor 52, the user interface 54 or the like, for causing one or more indicators of respective amounts of zooming to be displayed. See operation 66 of
In one embodiment, the indicator may be displayed upon the initial touch of the touch screen display with a pair of fingers or the like. In other embodiments, the indicators are only displayed once the apparatus 50 detects movement of the fingers in accordance with a predefined gesture, such as a predefined direction indicative of a predefined type of pinching gesture, such as a pinching gesture in which the fingers are spread further apart or a pinching gesture in which the fingers are brought closer to one another. As such, in an embodiment in which the gesture that controls zooming of a view is a pinching gesture, the apparatus 50 may optionally include means, such as the processor 52, user interface 54 or the like, for determining the direction of the pinching gesture. See operation 64 of
The apparatus 50, such as the processor 52, user interface 54 or the like, may also include means for causing the display of the view to be zoomed in a manner consistent with the gesture, such as represented by the current position of the user's fingers. As such, a user may consider the view, as zoomed, to determine if the appropriate amount of zooming has been introduced or if further zooming, either in or out, is required. In the embodiment of
In an instance in which the user continues to spread their fingers apart so as to coincide with the indicators of zooming to 200%, the apparatus 50, such as a processor 52, the user interface 52 or the like, may cause the view that is displayed to zoom to 200% relative to the original view at the time that the pinching gesture was commenced. By including the indicators, the user need not be concerned that the amount of zooming is close to, but not, exactly the respective predefined amount. Instead, a gesture that results in the placement of the user's fingers upon a respective indicator will cause the image to be displayed in a manner so as to have the predefined amount of zooming.
In order to continue to visually see and recognize the indicator once the gesture has brought the user's fingers to a position so as to overlie the indicator, the manner in which the indicator is displayed may be altered. Although the appearance of the indicator may be altered in various manners, the apparatus 50 may include means, such as processor 52, user interface 54 or the like, for causing the indicator to be highlighted, such as indicated by the cross hatching of
Further movement of the user's fingers beyond the indicator associated with zooming to 200% in
As shown in
If an indicator of a respective predefined amount of zooming was selected, the apparatus 50 may include means, such as the processor 52, user interface 54 or the like, for causing the view that is displayed to be zoomed to the respective predefined amount. See operation 72 of
Although example embodiments of the present invention have been described above in conjunction with the screen displays of
While the view that is displayed and zoomed in accordance with an example embodiment of the present invention may be any of a wide variety of different views, in the example embodiment of
As described above,
Accordingly, blocks of the flowchart support combinations of means for performing the specified functions and combinations of operations for performing the specified functions. It will also be understood that one or more blocks of the flowchart, and combinations of blocks in the flowchart, can be implemented by special purpose hardware-based computer systems which perform the specified functions, or combinations of special purpose hardware and computer instructions.
Many modifications and other embodiments of the inventions set forth herein will come to mind to one skilled in the art to which these inventions pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the inventions are not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.