WO2023136443A1 - 터치 입력을 처리하는 방법 및 그 전자 장치 - Google Patents

터치 입력을 처리하는 방법 및 그 전자 장치 Download PDF

Info

Publication number
WO2023136443A1
WO2023136443A1 PCT/KR2022/017946 KR2022017946W WO2023136443A1 WO 2023136443 A1 WO2023136443 A1 WO 2023136443A1 KR 2022017946 W KR2022017946 W KR 2022017946W WO 2023136443 A1 WO2023136443 A1 WO 2023136443A1
Authority
WO
WIPO (PCT)
Prior art keywords
touch
scroll
scrolling
electronic device
screen
Prior art date
Application number
PCT/KR2022/017946
Other languages
English (en)
French (fr)
Inventor
엄준봉
Original Assignee
삼성전자 주식회사
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
Priority claimed from KR1020220032803A external-priority patent/KR20230109050A/ko
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Priority to CN202280088395.8A priority Critical patent/CN118525261A/zh
Priority to EP22920773.3A priority patent/EP4411520A1/en
Priority to US18/120,925 priority patent/US20230221853A1/en
Publication of WO2023136443A1 publication Critical patent/WO2023136443A1/ko

Links

Images

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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • 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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • 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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0485Scrolling or panning
    • G06F3/04855Interaction with scrollbars
    • 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

Definitions

  • Various embodiments of the present disclosure relate to a method and apparatus for processing a touch event input to an electronic device.
  • An electronic device includes a display module, at least one processor operatively connected to the display module, and a memory operatively connected to the at least one processor, the memory comprising: Upon execution, the at least one processor, in response to detecting a first touch event, sets a touch slop that is a criterion for performing a scroll, and controls the current touch every specified time while the first touch event is maintained. Touch information corresponding to a point is acquired, and when it is determined that the touch movement distance exceeds the touch slope based on the acquired touch information, scrolling of the first screen displayed on the display module is initiated, and the scrolling is performed.
  • Check scroll data including at least one of a movement speed, a movement distance, or a deceleration of the first touch event based on the touch information obtained during the touch event, and determine whether or not the scroll ends based on the scroll data.
  • instructions for controlling a state of scrolling on the first screen may be stored.
  • An operating method of an electronic device includes, in response to detecting a first touch event, an operation of setting a touch slop that is a scroll performance criterion, and maintaining the first touch event.
  • a more improved user experience and convenience may be provided by improving responsiveness to a scroll function through learning the content property of a point where a touch event is detected and a user's touch pattern.
  • FIG. 1 is a block diagram of an electronic device in a network environment according to an embodiment.
  • FIG. 2 is a diagram illustrating a scroll processing method based on a touch movement distance according to an exemplary embodiment.
  • FIG. 3 is a diagram illustrating a configuration of an electronic device according to an exemplary embodiment.
  • FIG. 4 is a diagram illustrating a detailed configuration of an electronic device according to an exemplary embodiment.
  • FIG. 5 is a diagram for explaining a method of controlling a scroll state in response to a touch event input to an electronic device, according to an exemplary embodiment.
  • FIG. 6 is a flowchart of a method of determining a user's scroll end intention while a touch event is maintained, according to an exemplary embodiment.
  • FIG. 7 is a flowchart of a method of inactivating an animation effect when an intention to end a scroll is detected, according to an exemplary embodiment.
  • FIGS. 8A and 8B are diagrams illustrating a method of processing a scroll based on a touchdown point of a touch event, according to an exemplary embodiment.
  • FIG. 9 is a flowchart of a method of processing touch information detected in a scroll area, according to an embodiment.
  • FIGS. 10A and 10B are diagrams illustrating a method of processing a scroll in consideration of a user's touch pattern, according to an exemplary embodiment.
  • FIG. 11 is a flowchart illustrating a method of operating an electronic device according to an embodiment.
  • an electronic device may measure whether or not it is out of a designated range (eg, a touch slope) based on a point where the touch input occurred. If the touch slope is set high, the initial scroll response may be slow. Conversely, if the touch slope is set small, the electronic device may misbehave by recognizing the touch input intended for selection by the user as a scroll input. After the user's touch input deviates from the touch slope once, scrolling may be continuously performed regardless of the strength or direction of the touch input.
  • a designated range eg, a touch slope
  • the user's intention is determined in advance based on the user's touch input detected by the electronic device, and the user's unintended operation is not performed, thereby reducing unnecessary current consumption and reducing the user's intention.
  • various embodiments of controlling a screen scrolling operation may be provided.
  • FIG. 1 is a diagram illustrating an electronic device in a network environment 100 according to an embodiment.
  • an electronic device 101 communicates with an electronic device 102 through a first network 198 (eg, a short-range wireless communication network) or through a second network 199. It may communicate with at least one of the electronic device 104 or the server 108 through (eg, a long-distance wireless communication network). According to an embodiment, the electronic device 101 may communicate with the electronic device 104 through the server 108 .
  • a first network 198 eg, a short-range wireless communication network
  • a second network 199 e.g., a second network 199. It may communicate with at least one of the electronic device 104 or the server 108 through (eg, a long-distance wireless communication network). According to an embodiment, the electronic device 101 may communicate with the electronic device 104 through the server 108 .
  • the electronic device 101 includes a processor 120, a memory 130, an input module 150, an audio output module 155, a display module 160, an audio module 170, a sensor module ( 176), interface 177, connection terminal 178, haptic module 179, camera module 180, power management module 188, battery 189, communication module 190, subscriber identification module 196 , or the antenna module 197 may be included.
  • at least one of these components eg, the connection terminal 178) may be omitted or one or more other components may be added.
  • some of these components eg, sensor module 176, camera module 180, or antenna module 197) are integrated into one component (eg, display module 160). It can be.
  • the processor 120 for example, executes software (eg, the program 140) to cause at least one other component (eg, hardware or software component) of the electronic device 101 connected to the processor 120. It can control and perform various data processing or calculations. According to one embodiment, as at least part of data processing or operation, the processor 120 transfers commands or data received from other components (eg, sensor module 176 or communication module 190) to volatile memory 132. , processing commands or data stored in the volatile memory 132 , and storing resultant data in the non-volatile memory 134 .
  • software eg, the program 140
  • the processor 120 transfers commands or data received from other components (eg, sensor module 176 or communication module 190) to volatile memory 132. , processing commands or data stored in the volatile memory 132 , and storing resultant data in the non-volatile memory 134 .
  • the processor 120 may include a main processor 121 (eg, a central processing unit or an application processor) or a secondary processor 123 (eg, a graphic processing unit, a neural network processing unit ( NPU: neural processing unit (NPU), image signal processor, sensor hub processor, or communication processor).
  • a main processor 121 eg, a central processing unit or an application processor
  • a secondary processor 123 eg, a graphic processing unit, a neural network processing unit ( NPU: neural processing unit (NPU), image signal processor, sensor hub processor, or communication processor.
  • NPU neural network processing unit
  • the secondary processor 123 may be implemented separately from or as part of the main processor 121 .
  • the secondary processor 123 may, for example, take the place of the main processor 121 while the main processor 121 is in an inactive (eg, sleep) state, or the main processor 121 is active (eg, running an application). ) state, together with the main processor 121, at least one of the components of the electronic device 101 (eg, the display module 160, the sensor module 176, or the communication module 190) It is possible to control at least some of the related functions or states.
  • the auxiliary processor 123 eg, an image signal processor or a communication processor
  • the auxiliary processor 123 may include a hardware structure specialized for processing an artificial intelligence model.
  • AI models can be created through machine learning. Such learning may be performed, for example, in the electronic device 101 itself where the artificial intelligence model is performed, or may be performed through a separate server (eg, the server 108).
  • the learning algorithm may include, for example, supervised learning, unsupervised learning, semi-supervised learning or reinforcement learning, but in the above example Not limited.
  • the artificial intelligence model may include a plurality of artificial neural network layers.
  • Artificial neural networks include deep neural networks (DNNs), convolutional neural networks (CNNs), recurrent neural networks (RNNs), restricted Boltzmann machines (RBMs), deep belief networks (DBNs), bidirectional recurrent deep neural networks (BRDNNs), It may be one of deep Q-networks or a combination of two or more of the foregoing, but is not limited to the foregoing examples.
  • the artificial intelligence model may include, in addition or alternatively, a software structure in addition to a hardware structure.
  • the memory 130 may store various data used by at least one component (eg, the processor 120 or the sensor module 176) of the electronic device 101 .
  • the data may include, for example, input data or output data for software (eg, program 140) and commands related thereto.
  • the memory 130 may include volatile memory 132 or non-volatile memory 134 .
  • the program 140 may be stored as software in the memory 130 and may include, for example, an operating system 142 , middleware 144 , or an application 146 .
  • the input module 150 may receive a command or data to be used by a component (eg, the processor 120) of the electronic device 101 from the outside of the electronic device 101 (eg, a user).
  • the input module 150 may include, for example, a microphone, a mouse, a keyboard, a key (eg, a button), or a digital pen (eg, a stylus pen).
  • the sound output module 155 may output sound signals to the outside of the electronic device 101 .
  • the sound output module 155 may include, for example, a speaker or a receiver.
  • the speaker can be used for general purposes such as multimedia playback or recording playback.
  • a receiver may be used to receive an incoming call. According to one embodiment, the receiver may be implemented separately from the speaker or as part of it.
  • the display module 160 can visually provide information to the outside of the electronic device 101 (eg, a user).
  • the display module 160 may include, for example, a display, a hologram device, or a projector and a control circuit for controlling the device.
  • the display module 160 may include a touch sensor configured to detect a touch or a pressure sensor configured to measure the intensity of force generated by the touch.
  • the audio module 170 may convert sound into an electrical signal or vice versa. According to an embodiment, the audio module 170 acquires sound through the input module 150, the sound output module 155, or an external electronic device connected directly or wirelessly to the electronic device 101 (eg: Sound may be output through the electronic device 102 (eg, a speaker or a headphone).
  • the audio module 170 acquires sound through the input module 150, the sound output module 155, or an external electronic device connected directly or wirelessly to the electronic device 101 (eg: Sound may be output through the electronic device 102 (eg, a speaker or a headphone).
  • the sensor module 176 detects an operating state (eg, power or temperature) of the electronic device 101 or an external environmental state (eg, a user state), and generates an electrical signal or data value corresponding to the detected state. can do.
  • the sensor module 176 may include, for example, a gesture sensor, a gyro sensor, an air pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a bio sensor, It may include a temperature sensor, humidity sensor, or light sensor.
  • the interface 177 may support one or more designated protocols that may be used to directly or wirelessly connect the electronic device 101 to an external electronic device (eg, the electronic device 102).
  • the interface 177 may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
  • HDMI high definition multimedia interface
  • USB universal serial bus
  • SD card interface Secure Digital Card interface
  • audio interface audio interface
  • connection terminal 178 may include a connector through which the electronic device 101 may be physically connected to an external electronic device (eg, the electronic device 102).
  • the connection terminal 178 may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (eg, a headphone connector).
  • the haptic module 179 may convert electrical signals into mechanical stimuli (eg, vibration or movement) or electrical stimuli that a user may perceive through tactile or kinesthetic senses.
  • the haptic module 179 may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
  • the camera module 180 may capture still images and moving images. According to one embodiment, the camera module 180 may include one or more lenses, image sensors, image signal processors, or flashes.
  • the power management module 188 may manage power supplied to the electronic device 101 .
  • the power management module 188 may be implemented as at least part of a power management integrated circuit (PMIC), for example.
  • PMIC power management integrated circuit
  • the battery 189 may supply power to at least one component of the electronic device 101 .
  • the battery 189 may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
  • the communication module 190 is a direct (eg, wired) communication channel or a wireless communication channel between the electronic device 101 and an external electronic device (eg, the electronic device 102, the electronic device 104, or the server 108). Establishment and communication through the established communication channel may be supported.
  • the communication module 190 may include one or more communication processors that operate independently of the processor 120 (eg, an application processor) and support direct (eg, wired) communication or wireless communication.
  • the communication module 190 is a wireless communication module 192 (eg, a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 194 (eg, : A local area network (LAN) communication module or a power line communication module).
  • a wireless communication module 192 eg, a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module
  • GNSS global navigation satellite system
  • wired communication module 194 eg, : A local area network (LAN) communication module or a power line communication module.
  • the corresponding communication module is a first network 198 (eg, a local area communication network such as Bluetooth, wireless fidelity (Wi-Fi) direct, or infrared data association (IrDA)) or a second network 199 (eg : It can communicate with the external electronic device 104 through a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a long-distance communication network such as a computer network (eg, LAN or WAN).
  • a first network 198 eg, a local area communication network such as Bluetooth, wireless fidelity (Wi-Fi) direct, or infrared data association (IrDA)
  • a second network 199 eg : It can communicate with the external electronic device 104 through a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a long-distance communication network such as a computer network (eg, LAN or WAN).
  • a computer network eg, LAN
  • the wireless communication module 192 uses subscriber information (eg, International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module 196 within a communication network such as the first network 198 or the second network 199.
  • subscriber information eg, International Mobile Subscriber Identifier (IMSI)
  • IMSI International Mobile Subscriber Identifier
  • the electronic device 101 may be identified or authenticated.
  • the wireless communication module 192 may support a 5G network after a 4G network and a next-generation communication technology, for example, NR access technology (new radio access technology).
  • NR access technologies include high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), terminal power minimization and connection of multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low -latency communications)) can be supported.
  • eMBB enhanced mobile broadband
  • mMTC massive machine type communications
  • URLLC ultra-reliable and low -latency communications
  • the wireless communication module 192 may support a high frequency band (eg, mmWave band) to achieve a high data rate, for example.
  • the wireless communication module 192 uses various technologies for securing performance in a high frequency band, such as beamforming, massive multiple-input and multiple-output (MIMO), and full-dimensional multiplexing. Technologies such as input/output (FD-MIMO: full dimensional MIMO), array antenna, analog beam-forming, or large scale antenna may be supported.
  • the wireless communication module 192 may support various requirements defined for the electronic device 101, an external electronic device (eg, the electronic device 104), or a network system (eg, the second network 199).
  • the wireless communication module 192 may include a peak data rate for realizing eMBB (eg, 20 Gbps or more), a loss coverage for realizing mMTC (eg, 164 dB or less), or a U-plane latency for realizing URLLC (eg, Example: downlink (DL) and uplink (UL) each of 0.5 ms or less, or round trip 1 ms or less) may be supported.
  • eMBB eg, 20 Gbps or more
  • a loss coverage for realizing mMTC eg, 164 dB or less
  • U-plane latency for realizing URLLC eg, Example: downlink (DL) and uplink (UL) each of 0.5 ms or less, or round trip 1 ms or less
  • the antenna module 197 may transmit or receive signals or power to the outside (eg, an external electronic device).
  • the antenna module 197 may include an antenna including a radiator formed of a conductor or a conductive pattern formed on a substrate (eg, PCB).
  • the antenna module 197 may include a plurality of antennas (eg, an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network such as the first network 198 or the second network 199 is selected from the plurality of antennas by the communication module 190, for example. It can be.
  • a signal or power may be transmitted or received between the communication module 190 and an external electronic device through the selected at least one antenna.
  • other components eg, a radio frequency integrated circuit (RFIC) may be additionally formed as a part of the antenna module 197 in addition to the radiator.
  • RFIC radio frequency integrated circuit
  • the antenna module 197 may form a mmWave antenna module.
  • the mmWave antenna module includes a printed circuit board, an RFIC disposed on or adjacent to a first surface (eg, a lower surface) of the printed circuit board and capable of supporting a designated high frequency band (eg, mmWave band); and a plurality of antennas (eg, array antennas) disposed on or adjacent to a second surface (eg, a top surface or a side surface) of the printed circuit board and capable of transmitting or receiving signals of the designated high frequency band.
  • a first surface eg, a lower surface
  • a designated high frequency band eg, mmWave band
  • a plurality of antennas eg, array antennas
  • peripheral devices eg, a bus, general purpose input and output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI)
  • signal e.g. commands or data
  • commands or data may be transmitted or received between the electronic device 101 and the external electronic device 104 through the server 108 connected to the second network 199 .
  • Each of the external electronic devices 102 or 104 may be the same as or different from the electronic device 101 .
  • all or part of operations executed in the electronic device 101 may be executed in one or more external electronic devices among the external electronic devices 102 , 104 , or 108 .
  • the electronic device 101 when the electronic device 101 needs to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device 101 instead of executing the function or service by itself.
  • one or more external electronic devices may be requested to perform the function or at least part of the service.
  • One or more external electronic devices receiving the request may execute at least a part of the requested function or service or an additional function or service related to the request, and deliver the execution result to the electronic device 101 .
  • the electronic device 101 may provide the result as at least part of a response to the request as it is or additionally processed.
  • cloud computing distributed computing, mobile edge computing (MEC), or client-server computing technology may be used.
  • the electronic device 101 may provide an ultra-low latency service using, for example, distributed computing or mobile edge computing.
  • the external electronic device 104 may include an internet of things (IoT) device.
  • Server 108 may be an intelligent server using machine learning and/or neural networks. According to an embodiment, the external electronic device 104 or server 108 may be included in the second network 199 .
  • the electronic device 101 may be applied to intelligent services (eg, smart home, smart city, smart car, or health care) based on 5G communication technology and IoT-related technology.
  • the electronic device 101 may provide a screen scroll function based on touch information obtained (or received) at regular time intervals while the touch event is maintained after a touch event occurs.
  • the electronic device 101 may obtain touch information at a time period corresponding to a screen refresh rate of a display (eg, the display module 160 of FIG. 1 ). .
  • the touch information may be acquired every 16 ms.
  • the graph shown in FIG. 2 shows a scroll pattern generated in response to a touch event input from the bottom to the top of the display, and it can be observed that the screen scroll is performed in response to the touch movement distance until the touch event is released after the touch event occurs.
  • the x-axis may represent the elapsed time of a frame provided through the display
  • the y-axis may represent the size of a scroll performed through a touch event.
  • the electronic device 101 may generate a scroll of a screen being provided through the display in response to the touch event.
  • the electronic device 101 detects that the touch scroll size (eg, the touch movement distance) exceeds a designated value while the touch event is maintained after the touch event occurs, the electronic device 101 performs scrolling on the screen.
  • the designated value may correspond to a touch slope, which is a minimum movement size that is a criterion for generating a scroll.
  • the electronic device 101 may generate a scroll from frame 1 in which a touch movement size larger than a designated touch slope is measured.
  • the electronic device 101 may scroll the screen by the sensed touch movement size per frame unit time after the scrolling starts. For this reason, even if the electronic device 101 detects a small change that is not recognized by the user, there may occur a case where the electronic device 101 has to process the scrolling of the screen.
  • FIG. 2 from the 47th frame to the 67th frame, only minute changes in size are detected and changes moving in the opposite direction to the actual scrolling direction can be detected.
  • Unnecessary processor use and inefficient power consumption may occur.
  • the electronic device 101 when the electronic device 101 detects the release of the touch event, it may provide an animation effect such as a fling. It may be perceived as an unnecessary action.
  • the electronic device 101 predicts the user's intention to stop (or end) scrolling in advance based on the size of the touch movement detected during the touch event. It is necessary to avoid performing unnecessary operations.
  • FIG. 3 is a diagram illustrating a configuration of an electronic device 300 according to an exemplary embodiment.
  • the electronic device 300 is a device that controls a scroll state by predetermining a user's intention based on a touch event, and includes a display module 310, at least one processor 320, or a memory 330. can include In FIG. 3 , the electronic device 300 may correspond to the electronic device 101 shown in FIG. 1 .
  • the display module 310 displays a screen of a program (or application) executed by a user and responds to a touch input detected while displaying the screen.
  • the screen can be displayed while moving in a vertical direction or a left-right direction.
  • the display module 310 includes a liquid crystal display (LCD), a thin film transistor LCD (TFT-LCD), organic light emitting diodes (OLED), a light emitting diode (LED), an active matrix organic LED (AMOLED), It may be configured with at least one of a flexible display and a 3-dimensional display. In addition, some of these displays may be configured as a transparent type or a light transmission type so that the outside can be seen through them. This may be configured in the form of a transparent display including a transparent OLED (TOLED).
  • TOLED transparent OLED
  • the display module 310 may include a display panel 311 , a touch sensor 312 and a touch sensor control circuit 313 .
  • the touch sensor control circuit 313 may identify data related to a user's touch input received on the display panel 311 using the touch sensor 312 .
  • the touch sensor control circuit 313 determines characteristics related to a user's touch input (eg, at least one of a location (coordinate) of a touch point, a touch area, a touch sensitivity, a moving distance, and/or a holding time). It may include a touch sensor panel IC (TSP IC) for identifying relevant data.
  • TSP IC touch sensor panel IC
  • the touch sensor control circuit 313 drives the touch sensor (eg, applies power), and generates an electrical value (eg, power) generated by the touch sensor by an input received based on the applied power. : at least one of a voltage value or a current value) or a change in an electrical value may be identified.
  • the touch sensor control circuit 313 determines the type of touch (eg, normal touch, drag touch, palm touch, and/or pinch) based on the identified electrical value or change in the electrical value, and provides information about the touch at least. It can be transmitted to one processor 320.
  • the touch sensor control circuit 313 may transfer raw data of a touch event to the at least one processor 320 so that the at least one processor 320 may process the touch input.
  • the touch sensor 312 may include at least one touch sensor of a contact capacitive type, a pressure resistive type, an infrared sensing type, a surface ultrasonic conduction type, and/or a piezo effect type, , may not be limited in either way.
  • the memory 330 when executed, causes at least one processor 320 (eg, the processor 120 of FIG. 1 ) to perform various operations.
  • Controlling instructions can be stored.
  • at least one processor 320 may detect a touch event input from a user through the display module 310 .
  • the touch event is a touch gesture input by a user, and may be classified into a touch down operation, a touch move operation, or a touch release operation.
  • at least one processor 320 recognizes that the touch event is maintained until the touch is released after a touch down occurs, and moves the touch point in a certain direction and by how much while the touch event is maintained. You can continuously check that you are doing it.
  • the at least one processor 320 may set a touch slope that is a minimum movement distance that is a criterion for generating a scroll. After detecting the touch down of the touch event, the at least one processor 320 may not generate a scroll until a touch movement exceeding the touch slope is confirmed. According to various embodiments of the present disclosure, at least one processor 320 may set the touch slope to various values according to a location where a touchdown is detected on the display panel 311 of the display module 310 . For example, the at least one processor 320 checks whether the touchdown point of the touch event corresponds to the selection input area in the first screen being displayed through the display panel 311, and based on the check result, the You can set the touch slope.
  • the selection input area is an object set as a touch listener or a press listener in the first screen, or an image, video clip, anchor, or form. It may be an area including a user-selectable element such as At least one processor 320 determines whether the touchdown point corresponds to the object or the user-selectable element, or a parent element of the element selected by the touchdown is the object or the user-selectable element. element, it can be confirmed that the touchdown point corresponds to the selection input area. If the touchdown point does not correspond to the selection input area in the first screen, since there is no selectable element at the touchdown point, at least one processor 320 sets the touch slope to 0 (zero), When movement is detected, scrolling can be initiated immediately without checking the touch slope.
  • At least one processor 320 sets the touch slope to a value greater than 0 (zero), so that the detected touch movement is scrolled. You can check whether it is an input for or an input to select a specific element. In this case, if the detected touch movement distance is smaller than the set touch slope, the at least one processor 320 may determine the touch movement as an input for selecting a specific element. Conversely, if the detected touch movement distance is greater than the set touch slope, the at least one processor 320 may determine the touch movement as a scroll input and perform a scroll corresponding to the touch movement distance.
  • the at least one processor 320 determines whether a touch-down point of the touch event corresponds to a scroll area based on a scroll map in which a scroll pattern of the user is defined, Based on the check result, the touch slope may be set.
  • At least one processor 320 stores in the memory 330 a scroll map defining a scroll occurrence probability of each of a plurality of areas included on the display panel 311 and a scroll area in which scroll occurs with a high probability, and manages the scroll map. can do.
  • the scroll map may be updated whenever a new touch event ends.
  • at least one processor 320 detects the touchdown of the touch event, it loads the scroll map from the memory 330, and the scroll occurrence probability of the touchdown point or the touchdown point corresponds to the scroll area.
  • the at least one processor 320 may set the touch slope based on a scroll occurrence probability of the touch-down point. For example, at least one processor 320 may determine a constant K proportional to a scroll occurrence probability and set the touch slope by dividing a default value of the touch slope by the determined constant K. For this reason, a value closer to 0 (zero) may be set as the touch slope as the probability of occurrence of a scroll at the touchdown point increases.
  • the touchdown point does not correspond to the scroll area, at least one processor 320 may determine whether or not to perform scrolling based on the default value without changing a setting for the touch slope.
  • At least one processor 320 may obtain (or receive) touch information related to the current touch point at designated times while the touch event is maintained.
  • the touch information may include at least one of coordinates of a point at which a touch is sensed while the touch event is maintained, movement speed or movement distance calculated based on a current touch point, or deceleration.
  • the designated time may correspond to a screen refresh rate of the display panel 311 .
  • the screen refresh rate of the display panel 311 is 60 Hz
  • at least one processor 320 may obtain the touch information every 16 ms.
  • the screen refresh rate of the display panel 311 is 120 Hz
  • at least one processor 320 may obtain the touch information every 8 ms.
  • At least some operations described as being controlled by at least one processor 320 in the present disclosure may be performed by the touch sensor control circuit 313 included in the display module 310 .
  • the touch sensor control circuit 313 detects a touch event input on the display panel 311, and a time corresponding to a screen refresh rate of the display panel 311 while the touch event is maintained. Touch information may be obtained periodically.
  • the touch sensor control circuit 313 may set a touch slope that is a criterion for determining whether a scroll occurs in relation to the touch event.
  • the at least one processor 320 may determine whether a touch movement distance exceeds the set touch slope based on the acquired (or received) touch information. As a result of the check, if the touch movement distance does not exceed the touch slope, at least one processor 320 may not scroll the first screen until a touch movement exceeding the touch slope is detected. . As a result of the check, if the touch movement distance exceeds the touch slope, at least one processor 320 may control the display module 310 to start scrolling the first screen in response to the touch movement.
  • the at least one processor 320 may check whether or not to check the touch slope whenever new touch information is acquired from the time when the touch down of the touch event is sensed to the time when the touch is released.
  • the touch slope check may be set to a value of true or false. For example, if it is determined that the touch slope check item is set to true, the at least one processor 320 may determine whether a touch movement distance checked at a corresponding time exceeds the set touch slope. For another example, if it is determined that the touch slope check item is set to false, the at least one processor 320 may determine to scroll without checking the touch slope for the touch movement confirmed at that time. In one embodiment, at least one processor 320 may set an initial value (default) of the touch slope check item to true.
  • At least one processor 320 may unconditionally check whether the touch movement exceeds the touch slope with respect to the first confirmed touch movement after the touch event occurs. At least one processor 320 may change the setting value of the touch slop check item according to the scroll state of the touch event, and while scrolling is performed, whether to check the touch slop according to the previous setting value of the touch slop check item. can judge
  • At least one processor 320 includes at least one of a movement speed, a movement distance, or a deceleration of the touch event based on the touch information obtained while scrolling of the first screen is performed.
  • Scroll data can be checked.
  • at least one processor 320 obtains coordinate information of points where touch movement is detected at each designated time while the scroll is being performed, and based on the obtained coordinate information, the movement speed and movement for each scroll section At least one of distance or deceleration can be calculated.
  • the scroll period may correspond to the designated time period during which the touch information is obtained.
  • the at least one processor 320 may determine whether the scroll is terminated based on the scroll data. For example, the at least one processor 320 may check the movement distance of the scroll section corresponding to the current touch movement point based on the scroll data, and compare the checked movement distance with a first threshold value. The first threshold value may indicate a minimum touch movement size for sustaining the scrolling. At least one processor 320 may additionally check whether the state of the scroll is changed when the checked movement distance is smaller than the first threshold value as a result of the comparison. At least one processor 320 identifies a first scroll section having the largest touch movement distance while scrolling of the first screen is performed based on the touch information, and the current touch movement based on the first scroll section. The deceleration at the point can be calculated.
  • At least one processor 320 may check the user's intention on whether or not to continue scrolling by comparing the calculated deceleration with a second threshold.
  • the second threshold may represent a deceleration value defined as a criterion for determining a scroll stop section. As a result of the comparison, if the calculated deceleration is greater than the second threshold, the at least one processor 320 determines that the user has an intention to stop the scrolling, and stops the scrolling of the first screen.
  • the display module 310 may be controlled.
  • At least one processor 320 may determine the user's intention based on the touch movement distance measured in scroll sections without measuring deceleration in a low-speed scrolling situation.
  • the scrolling may stop frequently.
  • at least one processor 320 may count a scroll section in which the movement distance checked based on the touch information is less than the first threshold while scrolling of the first screen is performed.
  • the at least one processor 320 determines that there is a user intention to stop the scrolling, and displays the module 310 to stop the scrolling. can control.
  • the third threshold is a standard number of times for determining the user's intention to stop scrolling, and may be predefined.
  • At least one processor 320 may additionally check a scroll section in which the checked movement distance is greater than the first threshold value while counting scroll sections smaller than the first threshold value. When the at least one processor 320 determines that the scroll section greater than the first threshold exceeds a fourth threshold, the processor 320 determines the user's intention to continue the scrolling, and resets the count to zero. can do.
  • the fourth threshold is a reference number of times for determining the user's intention to continue scrolling, and may be predefined.
  • the at least one processor 320 may set the first threshold to be at least temporarily lowered in a low-speed scrolling situation (or when the user's intention is determined without measuring the deceleration). For example, the at least one processor 320 may check the movement speed for each scroll section while the first screen is scrolled, and calculate the average speed at the current touch movement point based on the checked movement speed. can When it is determined that the calculated average speed is equal to or lower than the designated speed, the at least one processor 320 may set the first threshold value to be smaller than the designated value.
  • the at least one processor 320 may check a scroll state of the first screen when detecting a touch release of the touch event. For example, if the at least one processor 320 detects the touch release while scrolling the first screen, the latest scroll speed (eg, average of a specified number of scroll sections based on the touch release time point) Based on the moving speed), a generation speed of an animation effect (eg, fling) to be applied right before the end of the scrolling may be determined. For another example, if the at least one processor 320 detects the touch release while the scrolling of the first screen is stopped, it is determined that there is a user intention to stop the scrolling of the first screen.
  • the latest scroll speed eg, average of a specified number of scroll sections based on the touch release time point
  • an animation effect eg, fling
  • the at least one processor 320 determines the generation speed of the animation effect as 0 (zero), and processes the touch event so that the touch event is immediately terminated in a state where the scrolling is stopped without applying an animation effect to the scrolling.
  • the at least one processor 320 may immediately control the scroll state according to the user's intention without processing unnecessary operations during the scrolling process corresponding to the touch event, thereby improving process efficiency and response speed during the scrolling process.
  • FIG. 4 is a diagram illustrating a detailed configuration of an electronic device 300 according to an exemplary embodiment.
  • the function described with reference to FIG. 4 includes at least one processor 320 (eg, an application processor) of the electronic device 300 of FIG. 3 and/or a touch sensor control circuit 313 included in the display module 310 ( Example: It can be understood as a function performed by a touch IC (integrated circuit).
  • the touch event input module 410, the scroll determination module 420, the scroll control module 430, or the content control module 440 shown in FIG. 4 may be implemented as a software module including at least one command.
  • At least one processor 320 may execute instructions (eg, instructions) stored in the memory 330 to implement the software modules shown in FIG. 3 display module 310 or memory 330) can be controlled.
  • the electronic device 300 is not limited to the components shown in FIG. 4, and components corresponding to functions required by the electronic device 300 are added among the components shown in FIG. can include
  • the electronic device 300 may include a touch event input module 410, a scroll determination module 420, a scroll control module 430, or a content control module 440.
  • the touch event input module 410 is a touch event input on a display panel 311 included in a display module (eg, the display module 160 of FIG. 1 or the display module 310 of FIG. 3 ). can be sensed, and the motion type of the touch event can be determined. For example, the touch event may be classified into a touch down operation, a touch move operation, or a touch release operation.
  • the touch event input module 410 determines that the touch event has occurred when a touch down is detected on the display panel 311, and the touch event is terminated when a touch release is detected on the display panel 311. can be judged to be
  • the touch event input module 410 moves the movement of the confirmed touch point while the touch event is maintained in a holding state from the time when the touch down is detected to the time when the touch release is detected. can be judged by
  • the scroll determination module 420 may set a condition for scrolling while the touch event is maintained, and may perform a determination related to the condition. For example, the scroll determination module 420 may set a touch slope that is a criterion for generating a scroll during the touch event. For another example, the scroll determination module 420 determines a touch movement distance from a current touch point based on touch information acquired at each designated time while the touch event is maintained, and the identified touch movement distance is a designated touch. It can be judged whether or not the slope is exceeded. For another example, the scroll determination module 420 may determine whether to check the touch slope whenever the touch information is acquired.
  • the touch slope check indicates whether a determination is made as to whether the acquired touch information exceeds the touch slope, and may be set to a value of true or false according to a scroll state.
  • the scroll determination module 420 may determine whether or not the touch information at the corresponding time exceeds the touch slope, and determine whether or not to start scrolling based on the check result.
  • the scroll determination module 420 may determine whether or not to continue scrolling without checking whether the touch slope is exceeded for touch information at the corresponding time.
  • the scroll control module 430 may control a scrolling state of the first screen being output through the display panel 311 and confirm a user's intention during scrolling. For example, the scroll control module 430 scrolls the first screen when it is determined that the touch movement distance determined from the current touch point exceeds the touch slope based on the determination result of the scroll determination module 420. can initiate. For another example, the scroll control module 430 checks the user's intention to stop or continue the scrolling based on touch information obtained while the first screen is scrolling, and scrolls according to the checking result. state can be controlled.
  • the content control module 440 may determine the content of the first screen displayed on the display panel while the touch event is maintained. For example, the content control module 440 may check whether a touchdown point of the touch event corresponds to a selection input area within the first screen.
  • the selection input area is an object set as a touch listener (or a listener related to user input) (eg, including a click listener or a press listener) in the first screen, or It may be an area including selectable elements such as images, video clips, anchors, and forms.
  • the content control module 440 may update and control a state of the display module 310 to display the first screen in response to a scroll state controlled by the scroll control module 430 .
  • FIG. 4 Details regarding the operation or function of the components shown in FIG. 4 will be described with reference to FIG. 5 .
  • the touch event input module 410 may detect that a touchdown occurs while displaying the first screen through the display module 310.
  • the touch event input module 410 determines that a new touch event occurs based on the touch down, and continuously checks the touch point until the touch is released after the touch down has occurred.
  • the scroll determination module 420 may reset settings related to scroll determination in response to a new touch event.
  • the scroll determination module 420 determines whether a touch slope that is a criterion for determining whether or not to initiate scrolling during the touch event and/or whether touch information obtained during the touch event exceeds the touch slope
  • the displayed touch slope check item can be set to an initial state.
  • the scroll determination module 420 may set the touch slope to a specified default value and set the touch slope check item to true.
  • the content control module 440 may check whether the touched down point corresponds to the selection input area in the first screen.
  • the content control module 440 may determine an area including an object set as a touch listener and/or a user-selectable element in the first screen as the selection input area. For example, when it is determined that the object or the selectable element is disposed at the touchdown point in the first screen, the content control module 440 may determine that the touchdown point corresponds to the selection input area. there is. For another example, the content control module 440 determines that the parent element of the element selected by the touch-down on the first screen corresponds to the object or the selectable element, the touch-down point. It can be confirmed that this corresponds to the selection input area.
  • the scroll determination module 420 may store the confirmation result of operation 505. For example, as a result of the check, if the touchdown point does not correspond to the selected input area, the scroll determination module 420 sets an item for checking whether the touchdown point corresponds to the selected input area to false, and sets the touchdown point to false. You can set the slope to 0 (zero). As a result of the check, if the touchdown point corresponds to the selected input area, the scroll determination module 420 sets the item for checking whether the selected input area corresponds to true, and sets the touch slope to a value greater than 0 (zero). can be set
  • the touch event input module 410 may detect a first touch movement of the touch event.
  • the touch event input module 410 may detect the touch movement based on touch information acquired at each designated time while the touch event is maintained.
  • the touch information may include at least one of coordinates of a point at which a touch is sensed while the touch event is maintained, movement speed or movement distance calculated based on a current touch point, or deceleration.
  • the designated time may be set corresponding to a screen refresh rate of the display panel 311 . For example, when the screen refresh rate of the display panel 311 is 60 Hz, at least one processor 320 may obtain touch information related to the touch event every 16 ms.
  • the scroll determination module 420 determines whether a touch slope check item for the touch event is set to true, and determines whether a movement distance caused by the first touch movement exceeds the set touch slope. can check whether As a result of the check, if the movement distance due to the first touch movement exceeds the touch slope, in operation 515, the scroll control module 430 may start scrolling the first screen. As a result of the check, if the movement distance by the first touch movement does not exceed the touch slope, the scroll control module 430 may not perform any operation until a subsequent touch movement exceeding the touch slope is detected. .
  • the scroll determination module 420 may change the setting of the touch slope check item to false.
  • the scroll determination module 420 may determine to perform scrolling without checking whether the touch slope is exceeded with respect to the detected touch movement while the touch slope check item is set to false.
  • the content control module 440 may update a state of the display module 310 to display the scrolled first screen in response to the first touch movement in operation 519 in response to a scroll of the first screen. there is.
  • the touch event input module 410 may detect a second touch movement of the touch event.
  • the scroll determination module 420 may confirm that the touch slope check item for the touch event is set to false.
  • the scroll determination module 420 recognizes that scrolling of the first screen is being performed at the time when the second touch movement is detected, and checks the touch slope for the touch movement. can be omitted.
  • the scroll control module 430 may determine whether there is a user intention to end the scrolling while the first screen is scrolling. For example, the scroll control module 430 may check at least one of a movement speed, a movement distance, and a deceleration in a corresponding scroll section based on touch information acquired at the time when the touch movement is detected. The scroll control module 430 determines that the user intends to end the scrolling when the movement distance checked for the scrolling section is smaller than the first threshold and the deceleration calculated in the scrolling section is larger than the second threshold.
  • the first threshold value may represent a minimum touch movement level for sustaining the scrolling
  • the second threshold value may represent a deceleration value defined as a criterion for determining a scroll stop section.
  • the deceleration of the scroll section may be calculated based on a scroll section in which the touch movement distance is the largest during scrolling of the first screen.
  • the scroll control module 430 may determine that the user has an intention to continue the scrolling when at least one of the determination conditions for the first threshold value and the second threshold value is not satisfied.
  • the scroll control module 430 terminates the user's scroll based on the touch movement distance for each scroll section measured up to the point at which the touch movement is detected. intent can be determined.
  • the scroll control module 430 counts scroll sections in which the touch movement distance is smaller than the first threshold value, and when the counted number of scroll sections exceeds the third threshold value, the user decides to end the scrolling. It can be judged that there is an intention.
  • the scroll control module 430 resets the count to 0 (zero) when it is determined that the scroll section in which the touch movement distance is greater than the first threshold value exceeds the fourth threshold value, and then detects Touch movements that occur may be counted again from the beginning.
  • the third threshold may be a value set as a reference number of times for determining the user's intention to end scrolling
  • the fourth threshold may be a value set as a reference number of times for determining the user's intention to continue scrolling.
  • the scroll control module 430 may determine that the user has an intention to continue the scrolling when the determination condition for the third threshold is not satisfied.
  • the scroll control module 430 may determine to continue scrolling the first screen in operation 527.
  • the content control module 440 may update the state of the display module 310 to display the scrolled first screen in response to the second touch movement in operation 529 .
  • the touch event input module 410 may detect an n-th touch movement of the touch event.
  • the scroll determination module 420 may determine that the touch slope check item for the touch event is set to false, and may omit the touch slope check for the touch movement. there is.
  • the scroll control module 430 may determine whether there is a user's intention to end the scroll while the first screen is being scrolled. In operation 535, the determination of the user's intention may be performed in the same manner as in operation 525.
  • the scroll determination module 420 determines to stop the scrolling of the first screen and sets the touch slope check item. You can change the value to true.
  • the scroll determination module 420 may reset the touch slope to a designated default value in response to a change in the state of the scroll.
  • the touch event input module 410 may detect an n+1 th touch movement of the touch event.
  • the scroll determination module 420 confirms that the touch slope check item for the touch event is set to true, and moves by the n+1 th touch movement. It may be checked whether the distance exceeds the set touch slope.
  • the scroll control module 430 confirms that the movement distance by the n+1 th touch movement does not exceed the touch slope, and in a state where the scrolling of the first screen is stopped, the n+1 It may be determined not to perform an operation corresponding to the th touch movement.
  • the touch event input module 410 may detect an n+2 th touch movement of the touch event.
  • the scroll determination module 420 confirms that the touch slope check item for the touch event is set to true, and moves by the n+2 th touch movement. It may be checked whether the distance exceeds the set touch slope.
  • the scroll control module 430 may confirm that the movement distance by the n+2 th touch movement does not exceed the touch slope, and determine not to perform an operation corresponding to the n+2 th touch movement.
  • the touch event input module 410 may detect a touch release.
  • the touch event input module 410 may determine that the touch event ends based on the detected touch release.
  • the scroll determination module 420 may check a touch slope check item for the touch event in response to detecting the touch release. For example, when the touch slope check item is set to true, the scroll determination module 420 may determine that the scrolling of the first screen is stopped, and process the touch event to be terminated immediately without an additional operation. there is. For another example, when the touch slope check item is set to false, the scroll determination module 420 may determine that scrolling of the first screen is in progress. In this case, the scroll control module 430 may apply an animation effect (eg, fling) to the scroll right before the touch event ends in operation 565 .
  • an animation effect eg, fling
  • the scroll control module 430 may set the animation effect generation speed based on the latest scrolling speed (eg, the average moving speed of a specified number of scroll sections based on the touch release time point).
  • the content control module 440 may update the state of the display module 310 to gradually stop scrolling on the first screen based on the setting in response to the touch release in operation 567. there is.
  • the electronic device 300 controls the user's scroll based on information about touch movement detected through a display module (eg, the display module 160 of FIG. 1 or the display module 310 of FIG. 3 ). Termination intent can be determined.
  • the operations shown in FIG. 6 may correspond to operations (eg, operations 511 to 553 of FIG. 4 ) performed in response to a touch movement detected at each designated time while the touch event is maintained.
  • the operations of FIG. 6 include at least one processor included in the electronic device 300 (eg, processor 120 of FIG. 1 or at least one processor 320 of FIG. 3 ), a touch sensor control circuit (touch sensor control of FIG. 3 ) circuit 313) and/or modules included in the electronic device 300 of FIG. 4 (eg, the scroll determination module 420 and/or the scroll control module 430).
  • the electronic device 300 may check whether it is necessary to determine a scroll state change while displaying the first screen through the display module 310. For example, when the electronic device 300 detects a new touch movement based on touch information acquired at each designated time while the touch event is maintained, it may recognize that the scroll state change needs to be determined.
  • the electronic device 300 may check in operation 620 whether the touch slope check item is set to true.
  • the touch slope check item may indicate whether or not to perform a determination on whether the acquired touch information exceeds the touch slope.
  • the electronic device 300 determines that the movement distance of the section corresponding to the point where the touch movement is detected in operation 625 is within the touch slope. can check whether it is
  • the touch slope may be a value set as a minimum movement distance that is a criterion for generating a scroll of the first screen.
  • the electronic device 300 recognizes that scrolling on the first screen is being performed in operation 630, and responds to the touch movement. It is possible to omit the touch slope check for In operation 630, the electronic device 300 may determine whether the user has an intention to end the scrolling based on the touch movement.
  • the electronic device 300 may check at least one of a movement speed, a movement distance, or a deceleration in a corresponding scroll section based on touch information acquired at the time when the touch movement is detected. . For example, while scrolling of the first screen is performed, the electronic device 300 obtains coordinate information of points where the touch movement is detected at each designated time, and moves for each scroll section based on the obtained coordinate information. At least one of speed, travel distance, or deceleration can be calculated.
  • the electronic device 300 when acquiring the touch information every about 16 ms, the electronic device 300 obtains coordinate information of points where 10 touch movements are detected ⁇ (10, 10), (10, 20), (10, 40) , (10, 60), (10, 90), (10, 100), (10, 102), (10, 103), (10, 103), (10, 101) ⁇ .
  • the coordinate information may refer to absolute coordinates defined on the display panel 311 included in the display module 310 .
  • coordinate information of the current touch point is the most recently measured (10, 101), and a difference between the coordinates may correspond to a movement speed (scrolling amount) for each scroll section.
  • the electronic device 300 determines the movement speed ⁇ (0, 10), (0, 20), (0, 20), (0, 30), (0, 10), (0, 2), (0, 1), (0, 0), (0, -2) ⁇ can be computed. Based on the calculation result, the electronic device 300 determines that the movement distance in the 5th touch movement is the largest among the coordinate information and the movement speed in the scroll section corresponding to the 5th touch movement is (0, 30). can According to various embodiments, when trying to obtain the deceleration at the point where the eighth touch movement is detected, the electronic device 300 determines that the movement speed of the scroll section corresponding to the corresponding point is (0, 1), As shown in Equation 1 below, the deceleration of the corresponding scroll section may be calculated.
  • the device 300 may determine that there is an intention to stop the scrolling from the point (10, 102) where the seventh touch movement is detected.
  • the electronic device 300 when the user scrolls by touch movement slowly below a designated speed, in operation 630, the electronic device 300 terminates the scrolling based on the touch movement speed measured in scroll sections without calculating deceleration. You can judge what you want to do. For example, when acquiring the touch information every about 16 ms, the electronic device 300 obtains coordinate information of points where 10 touch movements are detected ⁇ (10, 9), (10, 13), (10, 16) , (10, 18), (10, 21), (10, 24), (10, 28), (10, 32), (10, 36), (10, 40) ⁇ .
  • the electronic device 300 determines the movement speed ⁇ (0, 4), (0, 3), (0, 2), (0, 3), (0, 3), (0, 4), (0, 4), (0, 4), (0, 4) ⁇ can be computed.
  • the electronic device 300 since the movement speed difference between the scroll section where the maximum movement speed is measured and other scroll sections is not large, it may be difficult to determine the user's intention to stop scrolling using the deceleration calculation result. Therefore, when the electronic device 300 is performing low-speed scrolling, the electronic device 300 counts scroll sections in which the moving speed is smaller than the first threshold value, and when the number of the counted scroll sections exceeds the third threshold value, the electronic device 300 attempts to stop the scrolling. It can be judged that there is an intention.
  • the third threshold is a standard number of times for determining the user's intention to stop scrolling, and may be predefined. While counting scroll sections smaller than the first threshold, the electronic device 300 additionally checks a scroll section in which the moving speed is greater than the first threshold, and the checked scroll section exceeds a fourth threshold. If it is determined to be true, the count may be reset to 0 (zero), and then the detected touch movement may be counted again from the beginning.
  • the fourth threshold is a reference number of times for determining the user's intention to continue scrolling, and may be predefined.
  • operation 635 the electronic device 300 sets the touch slope check item to true and sets the scroll movement value to 0 (zero). By setting, scrolling of the first screen may not occur.
  • the electronic device 300 may determine to continue scrolling the first screen. In this case, the touch slop check item may be maintained at a preset false value.
  • the electronic device 300 determines to continue scrolling on the first screen in operation 640, and the touch slope check item. can be set to false.
  • FIG. 7 is a diagram for explaining a method of inactivating an animation effect when an intention to end a scroll is detected, according to an exemplary embodiment.
  • the electronic device 300 may process a touch event to end without applying an animation effect (eg, fling) related to scrolling.
  • the operations shown in FIG. 7 may correspond to touch slope check-related operations (eg, operations 511 to 565 of FIG. 4 ) that are determined with respect to touch information acquired at each designated time during a touch event.
  • the operations of FIG. 7 are included in at least one processor included in the electronic device 300 (eg, the processor 120 in FIG. 1 or the at least one processor 320 in FIG. 3 or the electronic device 300 in FIG. 4 ).
  • the display module 310 may perform at least some of the operations shown in FIG. 7 according to various embodiments. ) It may be performed by the touch sensor control circuit 313 included in.
  • the electronic device 300 determines whether the type of touch information detected by the display module (eg, the display module 160 of FIG. 1 or the display module 310 of FIG. 3) is a touch release.
  • the display module eg, the display module 160 of FIG. 1 or the display module 310 of FIG. 3
  • the electronic device 300 may check whether the touch slope check item is set to true in operation 720.
  • the touch slope check item may indicate whether or not to perform a determination on whether the acquired touch information exceeds the touch slope.
  • the electronic device 300 indicates that the user did not intend to stop scrolling on the first screen before the touch release. may be recognized, and settings related to the animation effect may not be changed.
  • the electronic device 300 may apply an animation effect that causes the scrolling of the first screen to gradually stop in response to the touch release, and the speed at which the animation effect occurs is the latest speed of the scrolling (eg : It may be determined based on the average moving speed of the specified number of scroll sections based on the touch release time point).
  • the electronic device 300 determines in operation 725 that the user intends to stop scrolling on the first screen before releasing the touch. It is recognized that there is no , and settings related to the animation effect can be changed. In this case, in operation 725, the electronic device 300 may set the generation speed of the animation effect to 0 (zero), so that the touch event is immediately terminated without providing a scroll-related animation effect.
  • the electronic device 300 determines that the touch information is related to touch movement, and applies scroll-related animation effects provided when the touch is released. judgment may be terminated.
  • FIGS. 8A and 8B are diagrams illustrating a method of processing a scroll based on a touchdown point of a touch event, according to an exemplary embodiment.
  • FIG. 8A while the electronic device 300 displays the first screen 800 through a display module (eg, the display module 160 of FIG. 1 or the display module 310 of FIG. 3 ), a touch-down operation 801 is performed. It can be checked whether this detected point corresponds to the selection input area. Determination of the selection input area will be described with reference to FIG. 8B.
  • the operations of FIG. 8B include at least one processor included in the electronic device 300 (eg, the processor 120 of FIG. 1 or at least one processor 320 of FIG. 3 ), a touch sensor control circuit (eg, the processor 120 of FIG. 3 ). Touch sensor control circuit 313) and/or modules included in the electronic device 300 of FIG. 4 (eg, touch event input module 410, scroll determination module 420, scroll control module 430, or content It can be performed by the control module 440).
  • the electronic device 300 may check whether the type of touch information detected while displaying the first screen 800 on the display panel 311 of the display module 310 is touch down. .
  • the electronic device 300 detects that the touch down point 801 is a touch listener in the first screen 800. listener) (or a listener associated with user input) (e.g. a click listener or a press listener).
  • the electronic device 300 performs the touchdown operation 820 (801) It is confirmed that the point corresponds to the selection input area, and the selection input area item may be set to true.
  • the electronic device 300 detects the touch in operation 814. It may be checked whether the down point 801 is an area in the first screen 800 that includes a user-selectable element.
  • the selectable element may refer to an element selectable within the first screen 800, such as an image, a video clip, an anchor, or a form.
  • the electronic device 300 corresponds to the touchdown 801 point as the selection input area.
  • the electronic device 300 sets the touch slope to a value greater than 0 (or a default value), so that the touch movement detected thereafter is an input for scrolling or a specific element. You can check if it is an input to select .
  • the electronic device 300 touches down in the first screen 800 in operation 816 ( 801) It can be checked whether the element at the point includes a parent element.
  • the parent element may refer to a parent element enclosing a view of the element.
  • the electronic device 300 determines in operation 822 that the touchdown point 801 does not correspond to the selection input area, and sets the selection input area item to false. can be set to When the selection input area item is set to false, the electronic device 300 sets the touch slope to 0 (zero), and then immediately starts scrolling without checking the touch slope for a detected touch movement.
  • the electronic device 300 may check whether the parent element also corresponds to the selection input area in operation 818. In operation 818, the electronic device 300 may check whether the parent element corresponds to the selection input area within the first screen 800 in the same manner (eg, operations 812 to 816).
  • the electronic device 300 may additionally check whether the touch information corresponds to touch movement in operation 830. As a result of checking in operation 830, if the touch information corresponds to the touch movement (operation 830 - YES), the electronic device 300 may check in operation 832 whether it is an input for selecting a specific element for the touch movement. For example, the electronic device 300 may check whether the movement distance due to the touch movement is within the touch slope and/or whether the point where the touch movement is detected corresponds to the selection input area.
  • the electronic device 300 may determine the touch movement as a touch input intended for the user's selection and process it. As a result of checking in operation 832, if both conditions are not satisfied (operation 832 - No), the electronic device 300 determines the touch movement as a scroll input for the first screen 800 in operation 834, and Scrolling of the first screen 800 may be performed.
  • the electronic device 300 will confirm that the touch information is related to touch release, determine that the touch event has ended, and process it. can
  • the electronic device 300 determines whether touch information detected in a scroll area on a display panel (eg, the display module 160 of FIG. 1 or the display panel 311 of FIG. 3 ) is an input for scrolling. Alternatively, it may be determined whether the input is for selecting a specific element.
  • the scroll area may be an area identified as frequently scrolling on the display panel 311 .
  • the operations illustrated in FIG. 9 include at least one processor included in the electronic device 300 (eg, processor 120 of FIG. 1 or at least one processor 320 of FIG. 3 ), a touch sensor control circuit (eg, FIG. 3) and/or modules included in the electronic device 300 of FIG. 4 (eg, the scroll determination module 420 and/or the scroll control module 430).
  • the electronic device 300 may determine whether the type of the touch information is touch release.
  • the electronic device 300 determines to end the scrolling of the first screen in operation 912, and upon releasing the touch in operation 914 It may be checked whether the detected movement distance is within the touch slope. As a result of checking in operation 914, if the moving distance is within the touch slope (operation 914 - Yes), the electronic device 300 determines in operation 916 that the detected touch information is an input for selecting an object or element on the first screen. Recognize it and handle it as a tap event. As a result of checking in operation 914, if the moving distance exceeds the touch slope (operation 914 - No), the electronic device 300 may end the determination of the touch information without processing the touch information as a tap event.
  • the electronic device 300 may additionally check whether the touch information corresponds to touch movement in operation 920. As a result of checking in operation 920, if the touch information corresponds to touch movement (operation 920 - Yes), the electronic device 300 scrolls the first screen in operation 922 and moves by the touch movement in operation 924. You can check if the distance is within the touch slope. In this case, the electronic device 300 may speed up the response to the touch event by first performing operation 922 and then performing operation 924 .
  • the electronic device 300 recognizes that the detected touch information is an input for scrolling the first screen and cancels the tap. can be dealt with As a result of checking in operation 924, if the moving distance is within the touch slope (operation 924 - Yes), the electronic device 300 may end the determination of the touch information without processing the touch information as a tap cancel.
  • the electronic device 300 may end the determination of the touch information without performing any operation.
  • FIGS. 10A and 10B are diagrams illustrating a method of processing a scroll in consideration of a user's touch pattern, according to an exemplary embodiment.
  • the electronic device 300 may divide the display panel 311 included in the display module 310 into a plurality of regions and record a touch pattern for each of the divided regions. For example, the electronic device 300 calculates a scroll occurrence probability for each region by accumulating the confirmed number of scroll occurrences for each of the plurality of regions, and based on the calculated scroll occurrence probability for each region, FIG. 10A You can create a scroll map like For example, in the electronic device 300, an area where scrolling in an upward direction frequently occurs on the display panel 311 is designated as the first scroll area 1001, and scrolling in a downward direction frequently occurs on the display panel 311. It is possible to define and manage each area as the second scroll area 1002 .
  • the electronic device 300 ignores the touch slope or lowers the setting value of the touch information detected in the first scroll area 1001 or the second scroll area 1002, so that scrolling can be performed more quickly. .
  • the electronic device 300 determines a constant K proportional to a scroll occurrence probability of the first scroll area 1001 or the second scroll area 1002, and sets the default value of the touch slope to the determined constant K. It is possible to set the touch slope by dividing by .
  • the constant K is a natural number greater than 1, and a value close to 0 (zero) may be set as the touch slope as the probability of occurrence of a scroll at the touchdown point increases.
  • the electronic device 300 determines that the touch information intended as a selection input by the user exceeds the touch slope, and thus an erroneous operation that is not processed as a selection operation occurs. can happen In order to prevent such an erroneous operation, the electronic device 300 performs the operations of FIG. 9 for touch information detected in the first scroll area 1001 or the second scroll area 1002 to process a tap event during scrolling. can make it possible.
  • the electronic device 300 may define an area having a considerably low scroll occurrence probability among a plurality of areas defined on the display panel 311 as a selection input processing area.
  • the electronic device 300 may predict in advance a touch input intended for selection with respect to the touch information detected in the selection input processing area.
  • the electronic device 300 performs a pre-processing operation for the link disposed at the point where the touch information is sensed (eg, obtaining an IP address of the link by accessing a domain name system (DNS) in advance, TCP handshaking ), or a prefetching operation) may be performed.
  • DNS domain name system
  • FIG. 10B a process of determining touch information using the scroll map will be described with reference to FIG. 10B.
  • the operations of FIG. 10B include at least one processor included in the electronic device 300 (eg, the processor 120 of FIG. 1 or the at least one processor 320 of FIG. 3), a touch sensor control circuit (the touch sensor of FIG. 3) control circuit 313), and/or modules included in the electronic device 300 of FIG. 4 (eg, touch event input module 410, scroll determination module 420, scroll control module 430, or content control) module 440).
  • the electronic device 300 may check whether the type of touch information detected through the display module 310 is touch down.
  • the electronic device 300 may check in operation 1012 whether the touch down point corresponds to the scroll area defined in the scroll map. As a result of checking in operation 1012, if the touchdown point corresponds to the scroll area (operation 1012 - Yes), the electronic device 300 may reset the touch slope based on the scroll occurrence probability of the scroll area in operation 1014. For example, the electronic device 300 determines a constant K corresponding to a scroll occurrence probability of the scroll area and resets the touch slope by dividing a default value of the touch slope by the determined constant K, so that the touch of the corresponding scroll area You can lower the slop. As a result of checking in operation 1012, if the touchdown point does not correspond to the scroll area (operation 1012 - No), the electronic device 300 may maintain the default value (or initial state) without resetting the touch slope.
  • the electronic device 300 may check whether the touch information corresponds to touch movement in operation 1020. As a result of checking in operation 1020, if the touch information corresponds to the touch movement (operation 1020 - Yes), the electronic device 300 may check whether the movement distance due to the touch movement is within the touch slope in operation 1022. As a result of checking in operation 1022, if the movement distance exceeds the touch slope (operation 1022 - No), the electronic device 300 may perform a scroll corresponding to the touch movement in operation 1024. As a result of checking in operation 1022, if the movement distance is within the touch slope (operation 1022 - Yes), the electronic device 300 may process not to perform a scroll corresponding to the touch movement.
  • the electronic device 300 may check whether the touch information corresponds to touch release in operation 1030. As a result of checking in operation 1030, if the touch information corresponds to touch release (operation 1030 - Yes), the electronic device 300 may apply a scroll-related animation effect based on the touch release and update the scroll map in operation 1032. there is. Updating the scroll map may be performed whenever a touch event ends. As a result of checking in operation 1030, if the touch information does not correspond to touch release (operation 1030 - No), the electronic device 300 may ignore the touch information without performing any operation corresponding to the touch information. there is.
  • the electronic device 300 is a device that controls a scroll state by predetermining a user's intention based on a touch event, and is the electronic device 101 shown in FIG. 1 or the electronic device shown in FIG. 3 ( 300).
  • the operations of FIG. 11 include at least one processor included in the electronic device 300 (eg, the processor 120 of FIG. 1 or the at least one processor 320 of FIG. 3 ) or a touch sensor control circuit (eg, the processor 120 of FIG. 3 ). This may be performed by the touch sensor control circuit 313 .
  • the electronic device 300 touches a first touch while displaying a first screen through a display panel (eg, the display module 160 of FIG. 1 or the display panel 311 of FIG. 3 ). It is possible to set a touch slope, which is a minimum movement distance that is a criterion for detecting an event and generating a scroll.
  • the touch event is a touch gesture input by a user, and may be classified into a touch down operation, a touch move operation, or a touch release operation.
  • the electronic device 300 recognizes that the touch event is maintained until the touch is released after a touchdown occurs, and continuously moves in which direction and by how much the touch point moves while the touch event is maintained. can be checked with
  • the electronic device 300 may set the touch slope to various values according to the location where the touchdown is detected. For example, the electronic device 300 checks whether the touchdown point of the touch event corresponds to the selection input area in the first screen being displayed through the display panel 311, and based on the check result, the touch slope can be set.
  • the selection input area is an object set as a touch listener (or a listener related to user input) (eg, a click listener or a press listener) in the first screen, or an image ( image), a video clip, an anchor, or a form.
  • the electronic device 300 when the touchdown point corresponds to the object or the selectable element, or a parent element of the element selected by the touchdown corresponds to the object or the selectable element, It can be confirmed that the touchdown point corresponds to the selection input area. If the touchdown point does not correspond to the selection input area in the first screen, since there is no selectable element at the touchdown point, the electronic device 300 sets the touch slope to 0 (zero) to move the touch Upon detection, scrolling can be started immediately without checking the touch slope. When it is confirmed that the touchdown point corresponds to the selection input area in the first screen, the electronic device 300 sets the touch slope to a value greater than 0 (zero), so that the sensed touch movement is then used for scrolling.
  • the electronic device 300 may determine the touch movement as an input for selecting a specific element. Conversely, if the detected touch movement distance is greater than the set touch slope, the electronic device 300 may determine the touch movement as a scroll input and perform a scroll corresponding to the touch movement distance.
  • the electronic device 300 determines whether a touchdown point of the touch event corresponds to a scroll area based on a scroll map in which the user's scroll pattern is defined, and as a result of the check, The touch slope may be set based on .
  • the electronic device 300 stores a scroll map defining a scroll occurrence probability of each of a plurality of areas included on the display panel 311 of the display module 310 and a scroll area where scrolling occurs with a high probability (e.g., It can be stored and managed in the memory 130 of FIG. 1 or the memory 330 of FIG. 3 .
  • the electronic device 300 loads the scroll map from the memory 330 and determines whether the touchdown point corresponds to the scrolling probability or the scrolling area.
  • the electronic device 300 may set the touch slope based on a scroll occurrence probability of the touch-down point. For example, the electronic device 300 may set the touch slope by determining a constant K proportional to a scroll occurrence probability and dividing a default value of the touch slope by the determined constant K. For this reason, a value closer to 0 (zero) may be set as the touch slope as the probability of occurrence of a scroll at the touchdown point increases.
  • the electronic device 300 may determine whether to perform scrolling based on the default value without changing the setting for the touch slope.
  • the electronic device 300 may obtain touch information related to the current touch point at each designated time while the touch event is maintained.
  • the touch information may include at least one of coordinates of a point at which a touch is sensed while the touch event is maintained, movement speed or movement distance calculated based on a current touch point, or deceleration.
  • the designated time may correspond to a screen refresh rate of the display panel 311 .
  • the electronic device 300 may acquire the touch information every 16 ms.
  • the electronic device 300 may obtain the touch information every 8 ms.
  • the electronic device 300 may determine whether a touch movement distance exceeds the set touch slope based on the acquired touch information. As a result of the check, if the touch movement distance does not exceed the touch slope, the electronic device 300 may not scroll the first screen until a touch movement exceeding the touch slope is detected. As a result of the check, if the touch movement distance exceeds the touch slope, the electronic device 300 may control the display module 310 to start scrolling the first screen in response to the touch movement.
  • the electronic device 300 determines at least one of a movement speed, a movement distance, or a deceleration of the touch event based on the touch information obtained while the first screen is scrolled. You can check the included scroll data. For example, while the scroll is being performed, the electronic device 300 obtains coordinate information of points where touch movement is detected at each designated time, and based on the obtained coordinate information, the electronic device 300 determines the movement speed, movement distance, or movement speed for each scroll section. At least one of the decelerations can be calculated. The scroll period may correspond to the designated time period during which the touch information is obtained.
  • the electronic device 300 may determine whether or not the scroll ends based on the scroll data. For example, the electronic device 300 may check the movement distance of the scroll section corresponding to the current touch movement point based on the scroll data, and compare the checked movement distance with a first threshold value.
  • the first threshold value may indicate a minimum touch movement size for sustaining the scrolling.
  • the electronic device 300 may additionally check whether the state of the scroll is changed when the checked movement distance is smaller than the first threshold value as a result of the comparison. Based on the touch information, the electronic device 300 identifies a first scroll section in which the touch movement distance is the largest while scrolling of the first screen is performed, and at the current touch movement point based on the first scroll section. deceleration can be calculated.
  • the electronic device 300 may check the user's intention on whether or not to continue scrolling by comparing the calculated deceleration with the second threshold.
  • the second threshold may represent a deceleration value defined as a criterion for determining a scroll stop section. As a result of the comparison, if the calculated deceleration is greater than the second threshold, the electronic device 300 determines that the user has an intention to stop the scrolling, and the display module stops the scrolling of the first screen. (310) can be controlled.
  • the electronic device 300 may determine the user's intention based on the touch movement distance measured in scroll sections without measuring the deceleration in a low-speed scrolling situation.
  • the electronic device 300 may count a scroll section in which the movement distance checked based on the touch information is less than the first threshold while scrolling of the first screen is performed.
  • the electronic device 300 determines that there is a user intention to stop the scrolling, and controls the display module 310 to stop the scrolling. can do.
  • the third threshold is a standard number of times for determining the user's intention to stop scrolling, and may be predefined. While counting scroll sections smaller than the first threshold, the electronic device 300 may additionally check a scroll section in which the checked movement distance is greater than the first threshold. When it is determined that the scroll section greater than the first threshold value exceeds the fourth threshold value, the electronic device 300 may determine the user's intention to continue the scrolling and reset the count to 0 (zero). there is.
  • the fourth threshold is a reference number of times for determining the user's intention to continue scrolling, and may be predefined.
  • the electronic device 300 may detect touch release of the touch event. In response to detecting the touch release, the electronic device 300 may check a scroll state of the first screen and determine whether or not to apply a scroll-related animation effect based on the checked state. For example, if the electronic device 300 detects the touch release while scrolling the first screen, the latest scroll speed (eg, the average movement speed of the specified number of scroll sections based on the touch release point) ), it is possible to determine the generation speed of an animation effect (eg, fling) to be applied right before the end of the scroll. For another example, when the electronic device 300 detects the touch release while the scrolling of the first screen is stopped, it may be determined that there is a user intention to stop the scrolling of the first screen. . In this case, the electronic device 300 may determine the generation speed of the animation effect as 0 (zero) and process the touch event so that the touch event ends immediately in a state where the scrolling is stopped without applying the animation effect to the scrolling. .
  • An electronic device (eg, the electronic device 300) according to an embodiment includes a display module (eg, the display module 310), and at least one processor operatively connected to the display module (eg, the processor 320). , and a memory (e.g., memory 330) operatively coupled to the at least one processor, wherein the memory, when executed, in response to the at least one processor detecting a first touch event, Setting a touch slop that is a criterion for scrolling, obtaining touch information corresponding to a current touch point at each designated time while the first touch event is maintained, and touch movement distance based on the acquired touch information When it is determined that t exceeds the touch slope, scrolling of the first screen displayed on the display module is initiated, and the movement speed and movement of the first touch event are based on the touch information acquired while the scrolling is being performed. It may check scroll data including at least one of distance and deceleration, determine whether or not to end the scroll based on the scroll data, and store instructions for controlling a state of scroll
  • the instructions include, in response to the at least one processor detecting the first touch event, a touch down point of the first touch event is set to a selection input area within the first screen. It is possible to check if it corresponds, and to set the touch slope based on the check result.
  • the instructions may set the touch slope to 0 (zero) when the at least one processor determines that the touchdown point does not correspond to the selection input area, and the touchdown point is If it is determined that it corresponds to the selection input area, the touch slope may be set to a value greater than 0 (zero).
  • the instructions include determining, by the at least one processor, a movement distance for each scroll section while scrolling of the first screen is performed based on the touch information, and the checked movement distance is a first If it is smaller than the threshold value, the state of the scroll is changed, and the scroll period may be set to correspond to the designated time.
  • the instructions include determining, by the at least one processor, a first scroll section having the largest movement distance while scrolling of the first screen is performed based on the touch information, and A current deceleration may be calculated based on a scroll section, and the scroll may be stopped if the calculated deceleration is greater than a second threshold.
  • the instructions include counting, by the at least one processor, a scroll interval in which the checked movement distance is less than the first threshold value while scrolling of the first screen is performed, and the counted scroll When the number of sections exceeds a third threshold, the scrolling may be stopped.
  • the instructions may include, while the at least one processor counts scroll sections in which the movement distance is smaller than the first threshold value, if a scroll section greater than the first threshold value exceeds a fourth threshold value , the count can be reset.
  • the instructions include determining, by the at least one processor, a movement speed for each scroll section while scrolling of the first screen is performed based on the touch information, and based on the checked movement speed If the calculated average speed is equal to or less than the designated speed, the first threshold value may be set by changing to less than the designated value.
  • the instructions include, in response to detecting the first touch event, the at least one processor checks a scroll map stored in the memory, and touches down the first touch event based on the scroll map. It is checked whether a touch down point corresponds to a scroll area in the display module, and if the touch down point corresponds to the scroll area, the touch slope is set based on a scroll occurrence probability of the touch down point.
  • the scroll map may include scroll region related information determined based on a scroll occurrence probability of a plurality of regions included in the display module and a scroll occurrence probability of each of the plurality of regions.
  • the instructions may, if the at least one processor detects a touch release of the first touch event, check a scroll control state of the first screen, and based on the checked control state, the A generation speed of an animation effect related to scrolling may be determined, and the first touch event may be processed as an end.
  • An operating method of an electronic device includes, in response to detecting a first touch event, setting a touch slop that is a scroll performance standard, the first Acquisition of touch information corresponding to the current touch point at each designated time while the touch event is maintained, and when it is determined that the touch movement distance exceeds the touch slope based on the acquired touch information, a display module (eg, display Initiating scrolling of the first screen displayed in the module 310), and determining at least one of a movement speed, a movement distance, or a deceleration of the first touch event based on the touch information acquired while the scroll is being performed.
  • the method may include an operation of checking included scroll data, and an operation of controlling a state of scrolling of the first screen by determining whether the scrolling is terminated based on the scroll data.
  • the setting of the touch slope may include determining whether a touch down point of the first touch event corresponds to a selection input area within the first screen in response to detecting the first touch event. An operation of checking and an operation of setting the touch slope based on the result of the checking may be included.
  • the operation of setting the touch slope may include, if it is determined that the touch down point does not correspond to the selection input area, an operation of setting the touch slope to 0 (zero), and the touch down point An operation of setting the touch slope to a value greater than 0 (zero) may be included if it is determined that the selection corresponds to the input area.
  • the operation of controlling the state of scrolling of the first screen may include an operation of checking a movement distance for each scroll section while scrolling of the first screen is performed based on the touch information, and the checking. and controlling to change the state of the scroll when the moved distance is smaller than the first threshold, and the scroll section may be set to correspond to the designated time.
  • the operation of controlling the state of scrolling of the first screen may include checking a first scroll section having the largest movement distance while scrolling of the first screen is performed based on the touch information.
  • the method may further include an operation of calculating a current deceleration based on the first scroll section, and an operation of controlling the scrolling to stop when the calculated deceleration is greater than a second threshold.
  • the operation of controlling the state of scrolling of the first screen may include counting a scroll section in which the checked movement distance is less than the first threshold while scrolling of the first screen is performed. , and controlling the scrolling to stop when the counted number of scroll sections exceeds a third threshold.
  • the operation of controlling the state of scrolling on the first screen may include counting scroll sections in which the movement distance is smaller than the first threshold value, while counting scroll sections in which the movement distance is smaller than the first threshold value is a fourth threshold value. If the value is exceeded, an operation of resetting the count may be further included.
  • the method may include an operation of checking a movement speed for each scroll section while scrolling of the first screen is performed based on the touch information, and an average speed calculated based on the checked movement speed If the speed is less than or equal to the designated speed, the method may further include changing and setting the first threshold value to be less than the designated value.
  • the operation of setting the touch slope may include an operation of checking a scroll map stored in the memory in response to detecting the first touch event, and a touchdown of the first touch event based on the scroll map ( determining whether a touch down point corresponds to a scroll area within the display module; and if the touchdown point corresponds to the scroll area, setting the touch slope based on a scroll occurrence probability of the touchdown point, wherein the scroll map includes a plurality of areas included in the display module. It may include scroll area-related information determined based on the scroll occurrence probability for and the scroll occurrence probability of each of the plurality of areas.
  • the method may include an operation of checking a scroll control state of the first screen when the touch release of the first touch event is detected, and an animation effect related to the scroll based on the checked control state.
  • the method may further include an operation of determining a generation speed of and processing that the first touch event has ended.
  • Electronic devices may be devices of various types.
  • the electronic device may include, for example, a portable communication device (eg, a smart phone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, or a home appliance.
  • a portable communication device eg, a smart phone
  • a computer device e.g., a smart phone
  • a portable multimedia device e.g., a portable medical device
  • a camera e.g., a portable medical device
  • a camera e.g., a portable medical device
  • a camera e.g., a camera
  • a wearable device e.g., a smart bracelet
  • first, second, or first or secondary may simply be used to distinguish that component from other corresponding components, and may refer to that component in other respects (eg, importance or order) is not limited.
  • a (eg, first) component is said to be “coupled” or “connected” to another (eg, second) component, with or without the terms “functionally” or “communicatively.”
  • the certain component may be connected to the other component directly (eg by wire), wirelessly, or through a third component.
  • module used in this document may include a unit implemented by hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit, for example.
  • a module may be an integrally constructed component or a minimal unit of components or a portion thereof that performs one or more functions.
  • the module may be implemented in the form of an application-specific integrated circuit (ASIC).
  • ASIC application-specific integrated circuit
  • a storage medium eg, internal memory 136 or external memory 138
  • a machine eg, electronic device 101
  • a processor eg, the processor 120
  • a device eg, the electronic device 101
  • the one or more instructions may include code generated by a compiler or code executable by an interpreter.
  • the device-readable storage medium may be provided in the form of a non-transitory storage medium.
  • non-temporary only means that the storage medium is a tangible device and does not contain a signal (e.g. electromagnetic wave), and this term refers to the case where data is stored semi-permanently in the storage medium and It does not discriminate when it is temporarily stored.
  • a signal e.g. electromagnetic wave
  • the method according to various embodiments disclosed in this document may be included and provided in a computer program product.
  • Computer program products may be traded between sellers and buyers as commodities.
  • a computer program product is distributed in the form of a device-readable storage medium (eg compact disc read only memory (CD-ROM)), or through an application store (eg Play Store TM ) or between two user devices ( It can be distributed (eg downloaded or uploaded) online, directly between smartphones.
  • a device-readable storage medium eg compact disc read only memory (CD-ROM)
  • an application store eg Play Store TM
  • It can be distributed (eg downloaded or uploaded) online, directly between smartphones.
  • at least part of the computer program product may be temporarily stored or temporarily created in a device-readable storage medium such as a manufacturer's server, an application store server, or a relay server's memory.
  • each component eg, module or program of the components described above may include a singular object or a plurality of entities.
  • one or more components or operations among the aforementioned components may be omitted, or one or more other components or operations may be added.
  • a plurality of components eg modules or programs
  • the integrated component may perform one or more functions of each of the plurality of components identically or similarly to those performed by a corresponding component of the plurality of components prior to the integration. .
  • operations performed by modules, programs, or other components are executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations are executed in a different order, omitted, or , or one or more other operations may be added.

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

전자 장치의 동작 방법이 제공된다. 측면들은 제1 터치 이벤트를 감지함에 응답하여, 스크롤 수행 기준이 되는 터치 슬롭(touch slop)을 설정하는 동작, 및 상기 제1 터치 이벤트가 유지되는 동안 지정된 시간 마다 현재 터치 지점에 대응하는 터치 정보를 획득하는 동작을 포함한다. 상기 획득된 터치 정보를 기반으로 터치 이동 거리가 상기 터치 슬롭을 초과하는 것으로 판단되면, 측면들은 디스플레이 모듈에 표시된 제1 화면에 대한 스크롤을 개시하는 동작을 포함한다. 측면들은 상기 스크롤이 수행되는 동안 획득된 상기 터치 정보를 기반으로 상기 제1 터치 이벤트의 이동 속도, 이동 거리 또는 감속도 중 적어도 하나를 포함하는 스크롤 데이터를 확인하는 동작, 및 상기 스크롤 데이터를 기반으로 상기 스크롤의 종료 여부를 판단하여, 상기 제1 화면에 대한 스크롤의 상태를 제어하는 동작을 더 포함한다.

Description

터치 입력을 처리하는 방법 및 그 전자 장치
본 개시의 다양한 실시 예들은 전자 장치에 입력된 터치 이벤트를 처리하는 방법 및 장치에 관한 것이다.
정보통신 기술이 발전함에 따라, 스마트폰이나 태블릿 PC와 같은 모바일 전자 장치의 사용이 보편화되고 있다. 이러한 전자 장치는 휴대가 용이하고, 통화 기능을 비롯하여 정보 입출력 기능 및 데이터 저장 기능과 같이 여러가지 유용한 기능들을 사용자에게 제공할 수 있다. 전자 장치의 기능이 다양해지면서 디스플레이를 통해 제공하는 정보들은 점차 증가하고 있다. 반면에, 휴대 용이성을 위해 전자 장치에 구비되는 디스플레이의 크기가 제한될 수 있으며, 이로 인해 사용자는 터치 입력을 이용한 스크롤을 통해 화면을 이동시켜 디스플레이에 표시되지 않은 정보를 확인할 수 있다.
본 문서에 개시되는 일 실시 예에 따른 전자 장치는, 디스플레이 모듈, 상기 디스플레이 모듈과 작동적으로 연결된 적어도 하나의 프로세서, 및 상기 적어도 하나의 프로세서와 작동적으로 연결된 메모리를 포함하고, 상기 메모리는, 실행 시에, 상기 적어도 하나의 프로세서가, 제1 터치 이벤트를 감지함에 응답하여, 스크롤 수행 기준이 되는 터치 슬롭(touch slop)을 설정하고, 상기 제1 터치 이벤트가 유지되는 동안 지정된 시간 마다 현재 터치 지점에 대응하는 터치 정보를 획득하고, 상기 획득된 터치 정보를 기반으로 터치 이동 거리가 상기 터치 슬롭을 초과하는 것으로 판단되면, 상기 디스플레이 모듈에 표시된 제1 화면에 대한 스크롤을 개시하고, 상기 스크롤이 수행되는 동안 획득된 상기 터치 정보를 기반으로 상기 제1 터치 이벤트의 이동 속도, 이동 거리 또는 감속도 중 적어도 하나를 포함하는 스크롤 데이터를 확인하고, 상기 스크롤 데이터를 기반으로 상기 스크롤의 종료 여부를 판단하여, 상기 제1 화면에 대한 스크롤의 상태를 제어하도록 하는 인스트럭션들을 저장할 수 있다.
본 문서에 개시되는 일 실시 예에 따른 전자 장치의 동작 방법은, 제1 터치 이벤트를 감지함에 응답하여, 스크롤 수행 기준이 되는 터치 슬롭(touch slop)을 설정하는 동작, 상기 제1 터치 이벤트가 유지되는 동안 지정된 시간 마다 현재 터치 지점에 대응하는 터치 정보를 획득하는 동작, 상기 획득된 터치 정보를 기반으로 터치 이동 거리가 상기 터치 슬롭을 초과하는 것으로 판단되면, 디스플레이 모듈에 표시된 제1 화면에 대한 스크롤을 개시하는 동작, 상기 스크롤이 수행되는 동안 획득된 상기 터치 정보를 기반으로 상기 제1 터치 이벤트의 이동 속도, 이동 거리 또는 감속도 중 적어도 하나를 포함하는 스크롤 데이터를 확인하는 동작, 및 상기 스크롤 데이터를 기반으로 상기 스크롤의 종료 여부를 판단하여, 상기 제1 화면에 대한 스크롤의 상태를 제어하는 동작을 포함할 수 있다.
본 문서에 개시된 다양한 실시 예들에 따르면, 터치 이벤트를 기반으로 스크롤 기능 제공 중 사용자의 의도를 미리 예측하여 불필요한 터치 이벤트의 처리를 방지할 수 있다. 또한, 본 문서에 개시된 다양한 실시 예들에 따르면, 터치 이벤트가 감지된 지점의 콘텐트 속성과 사용자의 터치 패턴 학습을 통해 스크롤 기능에 대한 반응성을 개선하여, 보다 향상된 사용자 경험과 편의성을 제공할 수 있다.
이 외에, 본 문서를 통해 직접적 또는 간접적으로 파악되는 다양한 효과들이 제공될 수 있다.
도 1은 일 실시 예에 따른 네트워크 환경 내의 전자 장치의 블록도이다.
도 2는 일 실시 예에 따라 터치 이동거리에 기반한 스크롤 처리 방식에 대해 설명하는 도면이다.
도 3은 일 실시 예에 따른 전자 장치의 구성을 설명하는 도면이다.
도 4는 일 실시 예에 따른 전자 장치의 세부 구성을 설명하는 도면이다.
도 5는 일 실시 예에 따라, 전자 장치에 입력된 터치 이벤트에 대응하여 스크롤 상태를 제어하는 방식을 설명하는 도면이다.
도 6은 일 실시 예에 따라, 터치 이벤트가 유지되는 동안 사용자의 스크롤 종료 의도를 판단하는 방법의 흐름도이다.
도 7은 일 실시 예에 따라, 스크롤 종료 의도가 감지되는 경우 애니메이션 효과를 비활성화하는 방법의 흐름도이다.
도 8a 및 도 8b는 일 실시 예에 따라, 터치 이벤트의 터치다운 지점을 기반으로 스크롤을 처리하는 방식을 설명하는 도면이다.
도 9는 일 실시 예에 따라, 스크롤 영역에서 감지된 터치 정보를 처리하는 방법의 흐름도이다.
도 10a 및 도 10b는 일 실시 예에 따라, 사용자의 터치 패턴을 고려하여 스크롤을 처리하는 방식을 설명하는 도면이다.
도 11은 일 실시 예에 따른, 전자 장치의 동작 방법을 도시하는 흐름도이다.
도면의 설명과 관련하여, 동일 또는 유사한 구성요소에 대해서는 동일 또는 유사한 참조 부호가 사용될 수 있다.
일반적으로 전자 장치에서 사용자의 터치 입력에 대응하여 화면 스크롤의 시작을 판단하기 위해서는, 터치 입력이 발생한 지점을 기준으로 지정된 범위(예: 터치 슬롭(touch slop))를 벗어나는지 측정할 수 있다. 터치 슬롭을 크게 설정할 경우, 스크롤 초기 반응이 느려질 수 있다. 반대로, 터치 슬롭을 작게 설정하면, 전자 장치는 사용자가 선택을 의도한 터치 입력을 스크롤 입력으로 인식하여 오동작할 수 있다. 사용자의 터치 입력이 한번 터치 슬롭을 벗어난 이후에는, 터치 입력의 세기나 방향에 관계없이 지속적으로 스크롤이 수행될 수 있다. 이를 개선하기 위해, 스크롤 기능과 관련된 터치 정보를 보정하는 다양한 방식들이 제안되었으나, 스크롤 시작 전 스크롤 수행 여부를 판단하는 기술을 주로 다루는 데 불과하다. 또한, 전자 장치가 스크롤 기능을 제공함에 있어, 스크롤 수행 중 사용자의 의도를 예측할 수 있는 정보가 부족하여, 사용자의 기대에 부합하는 반응 속도를 구현하는 데 한계가 있을 수 있다.
이에 따라 본 문서의 다양한 실시 예들에서는, 전자 장치에서 감지되는 사용자의 터치 입력을 기반으로 사용자의 의도를 미리 판단하여 사용자가 의도하지 않은 동작은 수행하지 않도록 처리함으로써, 불필요한 소모 전류의 발생을 줄이고 사용자의 의도대로 화면 스크롤 동작을 제어하는 다양한 실시 예들을 제공할 수 있다.
본 문서에 개시되는 실시 예들에서 이루고자 하는 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
이하, 첨부된 도면을 참조하여 본 문서에 개시된 다양한 실시 예들이 설명된다. 이는 본 개시의 다양한 실시 예들을 특정한 형태로 한정하려는 것이 아니며, 본 개시의 다양한 변경(modification), 균등물(equivalent), 및/또는 대체물(alternative)을 포함하는 것으로 이해되어야 한다.
도 1은 일 실시 예에 따른 네트워크 환경(100) 내의 전자 장치를 도시한 도면이다.
도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제1 네트워크(198)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(102)와 통신하거나, 또는 제2 네트워크(199)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(104) 또는 서버(108) 중 적어도 하나와 통신할 수 있다. 일 실시 예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일 실시 예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 모듈(150), 음향 출력 모듈(155), 디스플레이 모듈(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 연결 단자(178), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 포함할 수 있다. 어떤 실시 예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 연결 단자(178))가 생략되거나, 하나 이상의 다른 구성요소가 추가될 수 있다. 어떤 실시 예에서는, 이 구성요소들 중 일부들(예: 센서 모듈(176), 카메라 모듈(180), 또는 안테나 모듈(197))은 하나의 구성요소(예: 디스플레이 모듈(160))로 통합될 수 있다.
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 실행하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일 실시 예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 저장하고, 휘발성 메모리(132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일 실시 예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(123)(예: 그래픽 처리 장치, 신경망 처리 장치(NPU: neural processing unit), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 예를 들어, 전자 장치(101)가 메인 프로세서(121) 및 보조 프로세서(123)를 포함하는 경우, 보조 프로세서(123)는 메인 프로세서(121)보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(123)는 메인 프로세서(121)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 디스플레이 모듈(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일 실시 예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부로서 구현될 수 있다. 일 실시 예에 따르면, 보조 프로세서(123)(예: 신경망 처리 장치)는 인공지능 모델의 처리에 특화된 하드웨어 구조를 포함할 수 있다. 인공지능 모델은 기계 학습을 통해 생성될 수 있다. 이러한 학습은, 예를 들어, 인공지능 모델이 수행되는 전자 장치(101) 자체에서 수행될 수 있고, 별도의 서버(예: 서버(108))를 통해 수행될 수도 있다. 학습 알고리즘은, 예를 들어, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)을 포함할 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은, 복수의 인공 신경망 레이어들을 포함할 수 있다. 인공 신경망은 심층 신경망(DNN: deep neural network), CNN(convolutional neural network), RNN(recurrent neural network), RBM(restricted Boltzmann machine), DBN(deep belief network), BRDNN(bidirectional recurrent deep neural network), 심층 Q-네트워크(deep Q-networks) 또는 상기 중 둘 이상의 조합 중 하나일 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은 하드웨어 구조 이외에, 추가적으로 또는 대체적으로, 소프트웨어 구조를 포함할 수 있다.
메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서 모듈(176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다.
프로그램(140)은 메모리(130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다.
입력 모듈(150)은, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 모듈(150)은, 예를 들면, 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다.
음향 출력 모듈(155)은 음향 신호를 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 모듈(155)은, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일 실시 예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.
디스플레이 모듈(160)은 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 디스플레이 모듈(160)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일 실시 예에 따르면, 디스플레이 모듈(160)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다.
오디오 모듈(170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일 실시 예에 따르면, 오디오 모듈(170)은, 입력 모듈(150)을 통해 소리를 획득하거나, 음향 출력 모듈(155), 또는 전자 장치(101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102))(예: 스피커 또는 헤드폰)를 통해 소리를 출력할 수 있다.
센서 모듈(176)은 전자 장치(101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일 실시 예에 따르면, 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(177)는 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일 실시 예에 따르면, 인터페이스(177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(178)는, 그를 통해서 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일 실시 예에 따르면, 연결 단자(178)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일 실시 예에 따르면, 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일 실시 예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리할 수 있다. 일 실시 예에 따르면, 전력 관리 모듈(188)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.
배터리(189)는 전자 장치(101)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일 실시 예에 따르면, 배터리(189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일 실시 예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제1 네트워크(198)(예: 블루투스, Wi-Fi(wireless fidelity) direct 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크) 또는 제2 네트워크(199)(예: 레거시 셀룰러 네트워크, 5G 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부의 전자 장치(104)와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제1 네트워크(198) 또는 제2 네트워크(199)와 같은 통신 네트워크 내에서 전자 장치(101)를 확인 또는 인증할 수 있다.
무선 통신 모듈(192)은 4G 네트워크 이후의 5G 네트워크 및 차세대 통신 기술, 예를 들어, NR 접속 기술(new radio access technology)을 지원할 수 있다. NR 접속 기술은 고용량 데이터의 고속 전송(eMBB(enhanced mobile broadband)), 단말 전력 최소화와 다수 단말의 접속(mMTC(massive machine type communications)), 또는 고신뢰도와 저지연(URLLC(ultra-reliable and low-latency communications))을 지원할 수 있다. 무선 통신 모듈(192)은, 예를 들어, 높은 데이터 전송률 달성을 위해, 고주파 대역(예: mmWave 대역)을 지원할 수 있다. 무선 통신 모듈(192)은 고주파 대역에서의 성능 확보를 위한 다양한 기술들, 예를 들어, 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO(multiple-input and multiple-output)), 전차원 다중입출력(FD-MIMO: full dimensional MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 또는 대규모 안테나(large scale antenna)와 같은 기술들을 지원할 수 있다. 무선 통신 모듈(192)은 전자 장치(101), 외부 전자 장치(예: 전자 장치(104)) 또는 네트워크 시스템(예: 제2 네트워크(199))에 규정되는 다양한 요구사항을 지원할 수 있다. 일 실시 예에 따르면, 무선 통신 모듈(192)은 eMBB 실현을 위한 Peak data rate(예: 20Gbps 이상), mMTC 실현을 위한 손실 Coverage(예: 164dB 이하), 또는 URLLC 실현을 위한 U-plane latency(예: 다운링크(DL) 및 업링크(UL) 각각 0.5ms 이하, 또는 라운드 트립 1ms 이하)를 지원할 수 있다.
안테나 모듈(197)은 신호 또는 전력을 외부(예: 외부의 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일 실시 예에 따르면, 안테나 모듈(197)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 안테나를 포함할 수 있다. 일 실시 예에 따르면, 안테나 모듈(197)은 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다. 이런 경우, 제1 네트워크(198) 또는 제2 네트워크(199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(190)에 의하여 상기 복수의 안테나로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(190)과 외부의 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시 예에 따르면, 방사체 이외에 다른 부품(예: RFIC(radio frequency integrated circuit))이 추가로 안테나 모듈(197)의 일부로 형성될 수 있다.
다양한 실시 예에 따르면, 안테나 모듈(197)은 mmWave 안테나 모듈을 형성할 수 있다. 일 실시 예에 따르면, mmWave 안테나 모듈은 인쇄 회로 기판, 상기 인쇄 회로 기판의 제1 면(예: 아래 면)에 또는 그에 인접하여 배치되고 지정된 고주파 대역(예: mmWave 대역)을 지원할 수 있는 RFIC, 및 상기 인쇄 회로 기판의 제2 면(예: 윗면 또는 측면)에 또는 그에 인접하여 배치되고 상기 지정된 고주파 대역의 신호를 송신 또는 수신할 수 있는 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다.
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))을 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일 실시 예에 따르면, 명령 또는 데이터는 제2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 외부의 전자 장치(102, 또는 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일 실시 예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 외부의 전자 장치들(102, 104, 또는 108) 중 하나 이상의 외부의 전자 장치에서 실행될 수 있다. 예를 들면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부의 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부의 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 모바일 에지 컴퓨팅(MEC: mobile edge computing), 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. 전자 장치(101)는, 예를 들어, 분산 컴퓨팅 또는 모바일 에지 컴퓨팅을 이용하여 초저지연 서비스를 제공할 수 있다. 다른 실시 예에 있어서, 외부의 전자 장치(104)는 IoT(internet of things) 기기를 포함할 수 있다. 서버(108)는 기계 학습 및/또는 신경망을 이용한 지능형 서버일 수 있다. 일 실시 예에 따르면, 외부의 전자 장치(104) 또는 서버(108)는 제2 네트워크(199) 내에 포함될 수 있다. 전자 장치(101)는 5G 통신 기술 및 IoT 관련 기술을 기반으로 지능형 서비스(예: 스마트 홈, 스마트 시티, 스마트 카, 또는 헬스 케어)에 적용될 수 있다.
도 2는 일 실시 예에 따라 터치 이동거리에 기반한 스크롤 처리 방식에 대해 설명하는 도면이다. 다양한 실시 예에 따라, 전자 장치(101)는 터치 이벤트 발생 후 상기 터치 이벤트가 유지되는 동안 일정 시간 주기로 획득된(또는, 수신된) 터치 정보를 기반으로 화면 스크롤 기능을 제공할 수 있다.
도 2를 참조하면, 전자 장치(101)는 터치 이벤트가 유지되는 동안 디스플레이(예: 도 1의 디스플레이 모듈(160))의 화면 재생률(refresh rate)에 대응하는 시간 주기로 터치 정보를 획득할 수 있다. 다양한 실시 예에 따라, 전자 장치(101)가 60Hz의 화면 재생률을 갖춘 디스플레이를 포함하는 경우, 16ms마다 상기 터치 정보를 획득할 수 있다. 도 2에 도시된 그래프는 디스플레이의 아래에서 위로 입력된 터치 이벤트에 대응하여 발생한 스크롤 패턴을 나타낸 것으로, 상기 터치 이벤트가 발생한 후 해제될 때까지 터치 이동 거리에 대응하여 화면 스크롤이 수행됨을 관찰할 수 있다. 도 2에서 x축은 상기 디스플레이를 통해 제공되는 프레임의 경과 시간을 나타내고, y축은 터치 이벤트를 통해 수행되는 스크롤 크기를 나타낼 수 있다.
일 실시 예에서, 전자 장치(101)는 상기 터치 이벤트에 대응하여 상기 디스플레이를 통해 제공 중인 화면에 대한 스크롤을 발생시킬 수 있다. 전자 장치(101)는 상기 터치 이벤트가 발생한 후 상기 터치 이벤트가 유지된 상태에서 터치에 의해 스크롤된 크기(예: 터치 이동 거리)가 지정된 값을 초과하여 벗어남을 감지하면, 상기 화면에 대한 스크롤을 개시할 수 있다. 상기 지정된 값은 스크롤을 발생시키는 기준이 되는 최소 이동 크기인 터치 슬롭(touch slop)에 대응될 수 있다. 예를 들어, 도 2에서, 전자 장치(101)는 지정된 터치 슬롭보다 큰 터치 이동 크기가 측정된 1번 프레임부터 스크롤을 발생시킬 수 있다.
일 실시 예에서, 전자 장치(101)는 상기 스크롤이 개시된 이후 프레임 단위시간마다 감지된 터치 이동 크기만큼 상기 화면을 스크롤할 수 있다. 이로 인해, 전자 장치(101)는 사용자가 인식하지 못하는 작은 변화를 감지하더라도, 상기 화면에 대한 스크롤을 처리하여야 하는 경우가 발생할 수 있다. 도 2에서, 47번 프레임부터 67번 프레임까지는 미세한 크기의 변화만이 감지되고 실제 스크롤 방향과는 반대로 이동하는 변화가 감지될 수 있는데, 전자 장치(101)가 이러한 변화에 대해서도 스크롤을 수행할 경우 불필요한 프로세서의 사용과 비효율적 전력 소모가 발생될 수 있다. 다양한 실시 예에 따라, 전자 장치(101)는 상기 터치 이벤트의 터치 해제를 감지하면, 플링(fling)과 같은 애니메이션 효과를 제공할 수 있는데, 추가적인 스크롤을 발생시키는 플링 애니메이션은 스크롤을 멈추고자 하는 사용자에게 불필요한 동작으로 인식될 수 있다. 따라서, 화면 스크롤 과정에서 스크롤 반응성을 높이고 프로세서의 효율을 개선하기 위해서는, 전자 장치(101)는 터치 이벤트 동안 감지된 터치 이동 크기를 기반으로 스크롤을 정지(또는 종료)하려는 사용자의 의도를 미리 예측하여 불필요한 동작은 수행하지 않도록 할 필요가 있다.
도 3은 일 실시 예에 따른 전자 장치(300)의 구성을 설명하는 도면이다.
도 3을 참조하면, 전자 장치(300)는 터치 이벤트를 기반으로 사용자 의도를 미리 판단하여 스크롤 상태를 제어하는 장치로서, 디스플레이 모듈(310), 적어도 하나의 프로세서(320) 또는 메모리(330)를 포함할 수 있다. 도 3에서, 전자 장치(300)는 도 1에 도시된 전자 장치(101)에 대응될 수 있다.
일 실시 예에서, 디스플레이 모듈(310)(예: 도 1의 디스플레이 모듈(160))은 사용자가 실행한 프로그램(또는 어플리케이션)의 화면을 표시하고, 상기 화면을 표시하는 동안 감지된 터치 입력에 대응하여 상기 화면을 상하 방향 또는 좌우 방향으로 이동하면서 표시할 수 있다.
일 실시 예에서, 디스플레이 모듈(310)은 LCD(liquid crystal display), TFT-LCD(thin film transistor LCD), OLED(organic light emitting diodes), 발광다이오드(LED), AMOLED(active matrix organic LED), 플렉서블 디스플레이(flexible display) 및 3차원 디스플레이(3 dimension display) 중 적어도 하나 이상으로 구성될 수 있다. 또한 이들 중 일부 디스플레이는 그를 통해 외부를 볼 수 있도록 투명형 또는 광투과형으로 구성될 수 있다. 이는 TOLED(transparent OLED)를 포함하는 투명 디스플레이 형태로 구성될 수 있다.
일 실시 예에서, 디스플레이 모듈(310)은 디스플레이 패널(311), 터치 센서(312) 및 터치 센서 제어 회로(313)를 포함할 수 있다. 터치 센서 제어 회로(313)는 터치 센서(312)를 이용하여 디스플레이 패널(311) 상에 수신되는 사용자의 터치 입력과 관련된 데이터를 식별할 수 있다. 예를 들어, 터치 센서 제어 회로(313)는 사용자의 터치 입력과 관련된 특성들(예: 터치 지점의 위치(좌표), 터치 면적, 터치 감도, 이동 거리, 및/또는 유지 시간 중 적어도 하나)에 관련된 데이터를 식별하기 위한 터치 센서 패널 집적 회로(touch sensor panel IC, TSP IC)를 포함할 수 있다. 다양한 실시 예에 따라, 터치 센서 제어 회로(313)는 상기 터치 센서를 구동(예: 전원을 인가)하고, 인가된 전원을 기반으로 수신되는 입력에 의해 상기 터치 센서에서 발생되는 전기적인 값(예: 전압 값 또는 전류 값 중 적어도 하나) 또는 전기적인 값의 변화를 식별할 수 있다. 터치 센서 제어 회로(313)는 식별한 전기적인 값 또는 전기적인 값의 변화를 기반으로 터치의 종류(예: 일반 터치, 드래그 터치, 팜터치, 및/또는 핀치)를 결정하고 이에 대한 정보를 적어도 하나의 프로세서(320)로 전송할 수 있다. 터치 센서 제어 회로(313)는 적어도 하나의 프로세서(320)가 터치 입력에 대한 처리를 수행할 수 있도록 터치 이벤트에 대한 로우 데이터(raw data)를 적어도 하나의 프로세서(320)로 전달할 수도 있다. 다양한 실시 예에 따라, 터치 센서(312)는 접촉식 정전용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 및/또는 피에조 효과 방식 중 적어도 하나의 터치 센서를 포함할 수 있으며, 어느 하나의 방식으로 제한되지 않을 수 있다.
일 실시 예에서, 메모리(330)(예: 도 1의 메모리(130))는, 실행 시에, 적어도 하나의 프로세서(320)(예: 도 1의 프로세서(120))가 각종 동작들을 수행하도록 제어하는 인스트럭션들을 저장할 수 있다. 예를 들어, 적어도 하나의 프로세서(320)는 사용자로부터 디스플레이 모듈(310)을 통해 입력된 터치 이벤트를 감지할 수 있다. 상기 터치 이벤트는 사용자에 의해 입력된 터치 제스처로서, 터치 다운(touch down), 터치 이동(touch move), 또는 터치 해제(touch release)의 동작으로 구분될 수 있다. 다양한 실시 예에 따라, 적어도 하나의 프로세서(320)는 터치 다운이 발생한 후 터치가 해제될 때까지 상기 터치 이벤트가 유지된 것으로 인식하고, 상기 터치 이벤트가 유지되는 동안 터치 지점이 어느 방향으로 얼마나 이동하는지 지속적으로 확인할 수 있다.
일 실시 예에서, 적어도 하나의 프로세서(320)는 상기 터치 이벤트를 감지함에 응답하여, 스크롤을 발생시키는 기준이 되는 최소 이동 거리인 터치 슬롭(touch slop)을 설정할 수 있다. 적어도 하나의 프로세서(320)는 상기 터치 이벤트의 터치 다운을 감지한 후 터치 슬롭을 초과하는 터치 이동이 확인될 때까지 스크롤을 발생시키지 않을 수 있다. 다양한 실시 예에 따라, 적어도 하나의 프로세서(320)는 디스플레이 모듈(310)의 디스플레이 패널(311) 상에서 터치 다운이 감지된 위치에 따라 다양한 값으로 상기 터치 슬롭을 설정할 수 있다. 예를 들어, 적어도 하나의 프로세서(320)는 상기 터치 이벤트의 터치 다운 지점이 디스플레이 패널(311)을 통해 표시되고 있는 제1 화면 내 선택 입력 영역에 대응하는지 확인하고, 상기 확인 결과를 기반으로 상기 터치 슬롭을 설정할 수 있다. 상기 선택 입력 영역은 상기 제1 화면 내에서 터치 리스너(touch listener) 또는 프레스 리스너(press listener)로 설정된 객체, 또는 이미지(image), 비디오 클립(video clip), 앵커(anchor), 폼(form)과 같은 사용자가 선택 가능한 엘리먼트(selectable element)가 포함된 영역일 수 있다. 적어도 하나의 프로세서(320)는 상기 터치 다운 지점이 상기 객체 또는 상기 사용자가 선택 가능한 엘리먼트에 대응하거나, 또는 상기 터치 다운에 의해 선택된 엘리먼트의 부모 엘리먼트(parent element)가 상기 객체 또는 상기 사용자가 선택 가능한 엘리먼트에 대응하는 경우, 상기 터치 다운 지점이 상기 선택 입력 영역에 대응하는 것으로 확인할 수 있다. 상기 터치 다운 지점이 상기 제1 화면 내 선택 입력 영역에 대응하지 않는 경우 상기 터치 다운 지점에 선택 가능한 엘리먼트가 없으므로, 적어도 하나의 프로세서(320)는 상기 터치 슬롭을 0(zero)으로 설정하여, 터치 이동 감지 시 터치 슬롭 확인 없이 바로 스크롤을 개시하도록 처리할 수 있다. 상기 터치 다운 지점이 상기 제1 화면 내 선택 입력 영역에 대응하는 것으로 판단되면, 적어도 하나의 프로세서(320)는 상기 터치 슬롭을 0(zero)보다 큰 값으로 설정하여, 이후 감지된 터치 이동이 스크롤을 위한 입력인지 또는 특정 엘리먼트를 선택하기 위한 입력인지 확인할 수 있다. 이 경우, 적어도 하나의 프로세서(320)는 감지된 터치 이동 거리가 상기 설정된 터치 슬롭보다 작으면 상기 터치 이동을 특정 엘리먼트를 선택하기 위한 입력으로 판단할 수 있다. 반대로, 적어도 하나의 프로세서(320)는 감지된 터치 이동 거리가 상기 설정된 터치 슬롭보다 크면 상기 터치 이동을 스크롤 입력으로 판단하고, 상기 터치 이동 거리에 대응하여 스크롤을 수행할 수 있다.
다른 예를 들어, 적어도 하나의 프로세서(320)는, 사용자의 스크롤 패턴이 정의된 스크롤 맵(scroll map)을 기반으로 상기 터치 이벤트의 터치 다운 지점이 스크롤 영역(scroll area)에 대응하는지 확인하고, 상기 확인 결과를 기반으로 상기 터치 슬롭을 설정할 수 있다. 적어도 하나의 프로세서(320)는 디스플레이 패널 상(311)에 포함된 복수 개의 영역들 각각의 스크롤 발생 확률과, 높은 확률로 스크롤이 발생하는 스크롤 영역을 정의한 스크롤 맵을 메모리(330)에 저장하여 관리할 수 있다. 상기 스크롤 맵은 새로운 터치 이벤트의 종료 시마다 업데이트 될 수 있다. 적어도 하나의 프로세서(320)는 상기 터치 이벤트의 터치 다운을 감지하면, 메모리(330)로부터 상기 스크롤 맵을 로드하여, 상기 터치 다운된 지점의 스크롤 발생 확률 또는 상기 터치 다운 지점이 상기 스크롤 영역에 대응하는지 여부를 확인할 수 있다. 적어도 하나의 프로세서(320)는 상기 터치 다운 지점이 상기 스크롤 영역에 대응하는 것으로 판단되면, 상기 터치 다운 지점의 스크롤 발생 확률을 기반으로 상기 터치 슬롭을 설정할 수 있다. 이를 테면, 적어도 하나의 프로세서(320)는 스크롤 발생 확률에 비례하는 상수 K를 결정하고, 터치 슬롭의 디폴트 값을 상기 결정된 상수 K로 나누어 상기 터치 슬롭을 설정할 수 있다. 이로 인해, 상기 터치 다운 지점의 스크롤 발생 확률이 높을수록 0(zero)에 가까운 값이 상기 터치 슬롭으로 설정될 수 있다. 상기 터치 다운 지점이 상기 스크롤 영역에 대응하지 않는 경우에는, 적어도 하나의 프로세서(320)는 상기 터치 슬롭에 대한 설정 변경 없이 상기 디폴트 값을 기준으로 스크롤 수행 여부를 판단할 수 있다.
일 실시 예에서, 적어도 하나의 프로세서(320)는 상기 터치 이벤트가 유지되는 동안 지정된 시간 마다 현재 터치 지점에 연관되는 터치 정보를 획득(또는, 수신)할 수 있다. 상기 터치 정보는 상기 터치 이벤트가 유지되는 동안 터치가 감지된 지점의 좌표, 현재 터치 지점을 기준으로 계산된 이동 속도나 이동 거리 또는 감속도 중 적어도 하나를 포함할 수 있다. 상기 지정된 시간은 디스플레이 패널(311)의 화면 재생률(refresh rate)에 대응될 수 있다. 예를 들어, 디스플레이 패널(311)의 화면 재생률이 60Hz인 경우, 적어도 하나의 프로세서(320)는 16ms마다 상기 터치 정보를 획득할 수 있다. 다른 예를 들어, 디스플레이 패널(311)의 화면 재생률이 120Hz이면, 적어도 하나의 프로세서(320)는 8ms마다 상기 터치 정보를 획득할 수 있다. 다양한 실시 예에 따라, 본 개시에서 적어도 하나의 프로세서(320)에 의해 제어되는 것으로 기재된 적어도 일부 동작은 디스플레이 모듈(310)에 포함된 터치 센서 제어 회로(313)에 수행될 수 있다. 예를 들어, 터치 센서 제어 회로(313)는 디스플레이 패널(311) 상에 입력된 터치 이벤트를 감지하고, 상기 터치 이벤트가 유지되는 동안 디스플레이 패널(311)의 화면 재생률(refresh rate)에 대응하는 시간 주기로 터치 정보를 획득할 수 있다. 다른 예를 들어, 터치 센서 제어 회로(313)는 상기 터치 이벤트와 관련하여 스크롤 발생여부의 판단 기준이 되는 터치 슬롭을 설정할 수 있다.
일 실시 예에서, 적어도 하나의 프로세서(320)는 상기 획득된(또는, 수신된) 터치 정보를 기반으로 터치 이동 거리가 상기 설정된 터치 슬롭을 초과하는지 여부를 확인할 수 있다. 상기 확인 결과 상기 터치 이동 거리가 상기 터치 슬롭을 초과하지 않으면, 적어도 하나의 프로세서(320)는 상기 터치 슬롭을 초과하는 터치 이동이 감지될 때까지 상기 제1 화면에 대한 스크롤을 수행하지 않을 수 있다. 상기 확인 결과 상기 터치 이동 거리가 상기 터치 슬롭을 초과하면, 적어도 하나의 프로세서(320)는 상기 터치 이동에 대응하여 상기 제1 화면에 대한 스크롤을 개시하도록 디스플레이 모듈(310)을 제어할 수 있다.
다양한 실시 예에 따라, 적어도 하나의 프로세서(320)는 상기 터치 이벤트의 터치 다운이 감지된 시점부터 터치 해제 시점까지 새로운 터치 정보를 획득할 때마다 터치 슬롭 체크 여부를 확인할 수 있다. 상기 터치 슬롭 체크는 true 또는 false의 값으로 설정될 수 있다. 예를 들어, 적어도 하나의 프로세서(320)는 상기 터치 슬롭 체크 항목이 true로 설정된 것으로 판단되면, 해당 시점에서 확인된 터치 이동거리가 상기 설정된 터치 슬롭을 초과하는지 여부를 판단할 수 있다. 다른 예를 들어, 적어도 하나의 프로세서(320)는 상기 터치 슬롭 체크 항목이 false로 설정된 것으로 판단되면, 해당 시점에서 확인된 터치 이동에 대해서는 터치 슬롭 확인 없이 스크롤을 수행하도록 결정할 수 있다. 일 실시 예에서, 적어도 하나의 프로세서(320)는 상기 터치 슬롭 체크 항목의 초기 값(디폴트)을 true로 설정할 수 있다. 적어도 하나의 프로세서(320)는 상기 터치 슬롭 체크 항목의 초기 설정에 따라, 상기 터치 이벤트 발생 후 최초 확인된 터치 이동에 대해서는 무조건 터치 슬롭을 초과하는지 여부를 확인할 수 있다. 적어도 하나의 프로세서(320)는 상기 터치 이벤트의 스크롤 상태에 따라 상기 터치 슬롭 체크 항목의 설정 값을 변경할 수 있으며, 스크롤이 수행되는 동안에는 상기 터치 슬롭 체크 항목의 이전 설정 값에 따라 터치 슬롭 체크 여부를 판단할 수 있다.
일 실시 예에서, 적어도 하나의 프로세서(320)는 상기 제1 화면에 대한 스크롤이 수행되는 동안 획득된 상기 터치 정보를 기반으로 상기 터치 이벤트의 이동 속도, 이동 거리 또는 감속도 중 적어도 하나를 포함하는 스크롤 데이터를 확인할 수 있다. 예를 들어, 적어도 하나의 프로세서(320)는 상기 스크롤이 수행되는 동안 상기 지정된 시간 마다 터치 이동이 감지된 지점들의 좌표 정보를 획득하고, 상기 획득한 좌표 정보를 기반으로 스크롤 구간 별 이동 속도, 이동 거리 또는 감속도 중 적어도 하나를 계산할 수 있다. 상기 스크롤 구간은 상기 터치 정보가 획득되는 시간 주기인 상기 지정된 시간에 대응될 수 있다.
일 실시 예에서, 적어도 하나의 프로세서(320)는 상기 스크롤 데이터를 기반으로 상기 스크롤의 종료 여부를 판단할 수 있다. 예를 들어, 적어도 하나의 프로세서(320)는 상기 스크롤 데이터를 기반으로 현재 터치 이동 지점에 대응하는 스크롤 구간의 이동 거리를 확인하고, 상기 확인된 이동 거리를 제1 임계값과 비교할 수 있다. 상기 제1 임계값은 상기 스크롤을 지속하기 위한 최저 터치 이동 크기를 나타낼 수 있다. 적어도 하나의 프로세서(320)는 상기 비교 결과 상기 확인된 이동 거리가 상기 제1 임계값보다 작으면, 상기 스크롤의 상태 변경 여부를 추가 확인할 수 있다. 적어도 하나의 프로세서(320)는 상기 터치 정보를 기반으로 상기 제1 화면에 대한 스크롤이 수행되는 중 터치 이동 거리가 가장 큰 제1 스크롤 구간을 확인하고, 상기 제1 스크롤 구간을 기준으로 현재 터치 이동 지점에서의 감속도를 계산할 수 있다. 적어도 하나의 프로세서(320)는 상기 계산된 감속도를 제2 임계값의 비교 연산을 통해 스크롤 지속 여부에 대한 사용자 의도를 확인할 수 있다. 상기 제2 임계값은 스크롤 정지 구간을 판별하는 기준으로 정의된 감속도 값을 나타낼 수 있다. 상기 비교 결과 상기 계산된 감속도가 상기 제2 임계값보다 크면, 적어도 하나의 프로세서(320)는 사용자가 상기 스크롤을 멈추고자 하는 의도가 있음을 판단하고, 상기 제1 화면에 대한 스크롤을 정지하도록 디스플레이 모듈(310)을 제어할 수 있다.
다양한 실시 예에 따라, 적어도 하나의 프로세서(320)는 저속 스크롤 상황에서는 감속도 측정 없이, 스크롤 구간들에서 측정된 터치 이동거리를 기반으로 사용자 의도를 판단할 수 있다. 사용자가 천천히 터치 이동하여 스크롤 하는 경우, 상기 제1 스크롤 구간과 다른 스크롤 구간에서의 터치 이동거리의 차이가 크지 않기 때문에, 스크롤이 자주 정지될 수 있다. 이를 방지하기 위해, 적어도 하나의 프로세서(320)는 상기 제1 화면에 대한 스크롤이 수행되는 동안 상기 터치 정보를 기반으로 확인된 이동 거리가 상기 제1 임계값보다 작은 스크롤 구간을 카운트할 수 있다. 적어도 하나의 프로세서(320)는 상기 카운트된 스크롤 구간의 수가 제3 임계값을 초과하는 것으로 판단되면, 상기 스크롤을 멈추고자 하는 사용자 의도가 있음을 판단하고, 상기 스크롤이 정지하도록 디스플레이 모듈(310)을 제어할 수 있다. 상기 제3 임계값은 사용자의 스크롤 멈춤 의도를 판단하기 위한 기준 횟수로서, 사전 정의될 수 있다. 적어도 하나의 프로세서(320)는 상기 제1 임계값보다 작은 스크롤 구간을 카운트하는 동안 상기 확인된 이동 거리가 상기 제1 임계값보다 큰 스크롤 구간을 추가 확인할 수 있다. 적어도 하나의 프로세서(320)는 상기 제1 임계값보다 큰 스크롤 구간이 제4 임계값을 초과하는 것으로 판단되면, 상기 스크롤을 지속하고자 하는 사용자 의도를 판단하고, 상기 카운트를 0(zero)으로 리셋할 수 있다. 상기 제4 임계값은 사용자의 스크롤 지속 의도를 판단하기 위한 기준 횟수로서, 사전 정의될 수 있다.
다양한 실시 예에 따라, 적어도 하나의 프로세서(320)는 저속 스크롤 상황에서(또는 감속도 측정 없이 사용자 의도를 판단하는 경우) 상기 제1 임계값을 적어도 일시적으로 낮추도록 설정할 수 있다. 예를 들어, 적어도 하나의 프로세서(320)는 상기 제1 화면에 대한 스크롤이 수행되는 동안 스크롤 구간 별 이동 속도를 확인하고, 상기 확인된 이동 속도를 기반으로 현재 터치 이동 지점에서의 평균 속도를 계산할 수 있다. 적어도 하나의 프로세서(320)는 상기 계산된 평균 속도가 지정된 속도보다 낮거나 같은 것으로 판단되면, 상기 제1 임계값을 지정된 값보다 작게 변경하도록 설정할 수 있다.
일 실시 예에서, 적어도 하나의 프로세서(320)는 상기 터치 이벤트의 터치 해제를 감지하면, 상기 제1 화면에 대한 스크롤 상태를 확인할 수 있다. 예를 들어, 적어도 하나의 프로세서(320)는 상기 제1 화면에 대한 스크롤을 수행 중인 상태에서 상기 터치 해제를 감지하면, 최근 스크롤 속도(예: 터치 해제 시점을 기준으로 지정된 개수의 스크롤 구간들의 평균 이동 속도)를 기반으로 상기 스크롤의 종료 직전에 적용될 애니메이션 효과(예: 플링(fling))의 발생 속도를 결정할 수 있다. 다른 예를 들어, 적어도 하나의 프로세서(320)는 상기 제1 화면에 대한 스크롤이 정지된 상태에서 상기 터치 해제를 감지하면, 상기 제1 화면에 대한 스크롤을 멈추고자 하는 사용자 의도가 있었던 것으로 판단할 수 있다. 이 경우, 적어도 하나의 프로세서(320)는 상기 애니메이션 효과의 발생 속도를 0(zero)으로 결정하여, 상기 스크롤에 대한 애니메이션 효과 적용 없이 상기 스크롤이 정지된 상태에서 바로 상기 터치 이벤트가 종료되도록 처리할 수 있다. 적어도 하나의 프로세서(320)는 상기 터치 이벤트에 대응하는 스크롤 과정에서 불필요한 동작은 처리하지 않고, 사용자 의도에 따라 스크롤 상태를 즉각 제어할 수 있으며, 이로 인해 스크롤 과정에서 프로세스 효율과 반응 속도가 개선될 수 있다.
도 4는 일 실시 예에 따른 전자 장치(300)의 세부 구성을 설명하는 도면이다. 도 4를 참조하여 설명되는 기능은 도 3의 전자 장치(300)의 적어도 하나의 프로세서(320)(예: 어플리케이션 프로세서) 및/또는 디스플레이 모듈(310)에 포함된 터치 센서 제어 회로(313)(예: 터치 IC(integrated circuit))에 의해 수행되는 기능으로 이해될 수 있다. 예를 들어, 도 4에 도시된 터치 이벤트 입력 모듈(410), 스크롤 판단 모듈(420), 스크롤 제어 모듈(430) 또는 콘텐트 제어 모듈(440)은 적어도 하나의 명령어를 포함하는 소프트웨어 모듈로 구현될 수 있다. 적어도 하나의 프로세서(320)는 도 4에 도시된 소프트웨어 모듈들을 구현하기 위해 메모리(330)에 저장된 명령어들(예: 인스트럭션들(instructions))을 실행시킬 수 있고, 기능과 관련된 하드웨어(예: 도 3의 디스플레이 모듈(310) 또는 메모리(330))를 제어할 수 있다. 다양한 실시 예에 따라, 전자 장치(300)는 도 4에 도시된 구성 요소들로 제한되지 않으며, 도 1에 도시된 구성요소들 중 전자 장치(300)에서 요구되는 기능에 대응하는 구성 요소를 추가 포함할 수 있다.
도 4를 참조하면, 전자 장치(300)는 터치 이벤트 입력 모듈(410), 스크롤 판단 모듈(420), 스크롤 제어 모듈(430) 또는 콘텐트 제어 모듈(440)을 포함할 수 있다.
일 실시 예에서, 터치 이벤트 입력 모듈(410)은 디스플레이 모듈(예: 도 1의 디스플레이 모듈(160) 또는 도 3의 디스플레이 모듈(310))에 포함된 디스플레이 패널(311) 상에 입력되는 터치 이벤트를 감지하고, 상기 터치 이벤트의 동작 타입을 판단할 수 있다. 예를 들어, 상기 터치 이벤트는 터치 다운(touch down), 터치 이동(touch move), 또는 터치 해제(touch release)의 동작으로 구분될 수 있다. 터치 이벤트 입력 모듈(410)은 디스플레이 패널(311) 상에서 터치 다운이 감지된 시점에 상기 터치 이벤트가 발생된 것으로 판단하고, 디스플레이 패널(311) 상에서 터치 해제가 감지된 시점에 상기 터치 이벤트가 종료된 것으로 판단할 수 있다. 터치 이벤트 입력 모듈(410)은, 상기 터치 다운이 감지된 시점부터 상기 터치 해제가 감지된 시점까지 터치가 홀딩(holding)된 상태로 상기 터치 이벤트가 유지되는 동안 확인되는 터치 지점의 움직임을 터치 이동으로 판단할 수 있다.
일 실시 예에서, 스크롤 판단 모듈(420)은 상기 터치 이벤트가 유지되는 동안 스크롤을 수행하기 위한 조건을 설정하고, 상기 조건에 관련된 판단을 수행할 수 있다. 예를 들어, 스크롤 판단 모듈(420)은 상기 터치 이벤트 동안 스크롤을 발생시키는 기준이 되는 터치 슬롭을 설정할 수 있다. 다른 예를 들어, 스크롤 판단 모듈(420)은 상기 터치 이벤트가 유지되는 동안 지정된 시간마다 획득되는 터치 정보를 기반으로 현재 터치 지점에서의 터치 이동 거리를 확인하고, 상기 확인된 터치 이동 거리가 지정된 터치 슬롭을 초과하는지 여부를 판단할 수 있다. 또 다른 예를 들어, 스크롤 판단 모듈(420)은 상기 터치 정보 획득 시마다 터치 슬롭 체크 여부를 판단할 수 있다. 상기 터치 슬롭 체크는 상기 획득된 터치 정보가 터치 슬롭을 초과하는지에 대한 판단의 수행 여부를 나타내는 것으로, 스크롤 상태에 따라 true 또는 false의 값으로 설정될 수 있다. 상기 터치 슬롭 체크 항목이 true로 설정된 경우, 스크롤 판단 모듈(420)은 해당 시점의 터치 정보가 터치 슬롭을 초과하는지 여부를 확인하고, 상기 확인 결과를 기반으로 스크롤 개시 여부를 결정할 수 있다. 상기 터치 슬롭 체크 항목이 false로 설정된 경우, 스크롤 판단 모듈(420)은 해당 시점의 터치 정보에 대해서는 터치 슬롭 초과 여부를 확인하지 않고, 스크롤 지속 여부를 결정할 수 있다.
일 실시 예에서, 스크롤 제어 모듈(430)은 디스플레이 패널(311)을 통해 출력 중인 제1 화면에 대한 스크롤 상태를 제어하고, 스크롤 수행 중 사용자 의도를 확인할 수 있다. 예를 들어, 스크롤 제어 모듈(430)은 스크롤 판단 모듈(420)의 판단 결과를 기반으로 현재 터치 지점에서 확인된 터치 이동 거리가 상기 터치 슬롭을 초과하는 것으로 판단되면, 상기 제1 화면에 대한 스크롤을 개시할 수 있다. 다른 예를 들어, 스크롤 제어 모듈(430)은 상기 제1 화면에 대한 스크롤이 수행되는 동안 획득되는 터치 정보를 기반으로 상기 스크롤을 정지 또는 지속하고자 하는 사용자 의도를 확인하고, 상기 확인 결과에 따라 스크롤 상태를 제어할 수 있다.
일 실시 예에서, 콘텐트 제어 모듈(440)은 상기 터치 이벤트가 유지되는 동안 상기 디스플레이 패널에 표시되는 제1 화면의 콘텐트에 대한 판단을 수행할 수 있다. 예를 들어, 콘텐트 제어 모듈(440)은 상기 터치 이벤트의 터치 다운 지점이 상기 제1 화면 내 선택 입력 영역에 대응하는지 여부를 확인할 수 있다. 상기 선택 입력 영역은 상기 제1 화면 내에서 터치 리스너(touch listener)(또는 사용자 입력에 연관되는 리스너) (예: 클릭 리스너(click listener) 또는 프레서 리스너(press listener) 포함)로 설정된 객체, 또는 이미지(image), 비디오 클립(video clip), 앵커(anchor), 폼(form)과 같이 사용자가 선택 가능한 엘리먼트(selectable element)가 포함된 영역일 수 있다. 다른 예를 들어, 콘텐트 제어 모듈(440)은 스크롤 제어 모듈(430)에 의해 제어되는 스크롤 상태에 대응하여 상기 제1 화면을 표시하도록 디스플레이 모듈(310)의 상태를 업데이트 및 제어할 수 있다.
도 4에 도시된 구성요소들의 동작이나 기능에 관한 구체적 내용은 도 5를 참조하여 설명한다.
도 5를 참조하면, 동작 501에서 터치 이벤트 입력 모듈(410)은 디스플레이 모듈(310)을 통해 제1 화면을 표시하는 중 터치 다운이 발생함을 감지할 수 있다. 터치 이벤트 입력 모듈(410)은 상기 터치 다운을 기반으로 새로운 터치 이벤트가 발생함을 판단하고, 상기 터치 다운이 발생한 후 터치가 해제될 때까지 터치 지점을 지속적으로 확인할 수 있다.
일 실시 예에 따르면, 동작 503에서 스크롤 판단 모듈(420)은 새로운 터치 이벤트의 발생에 응답하여 스크롤 판단 관련 설정을 리셋할 수 있다. 예시적으로, 스크롤 판단 모듈(420)은 상기 터치 이벤트 동안 스크롤을 개시할지 여부를 판단하는 기준이 되는 터치 슬롭 및/또는 상기 터치 이벤트 동안 획득된 터치 정보가 터치 슬롭을 초과하는지에 대한 판단 여부를 나타내는 터치 슬롭 체크 항목을 초기 상태로 설정할 수 있다. 예를 들어, 스크롤 판단 모듈(420)은 동작 503에서, 상기 터치 슬롭을 지정된 디폴트 값으로 설정하고, 상기 터치 슬롭 체크 항목을 true로 설정할 수 있다.
일 실시 예에 따르면, 동작 505에서 콘텐트 제어 모듈(440)은 상기 터치 다운된 지점이 상기 제1 화면 내 선택 입력 영역에 대응하는지 확인할 수 있다. 콘텐트 제어 모듈(440)은 상기 제1 화면 내에서 터치 리스너(touch listener)로 설정된 객체 및/또는 사용자가 선택 가능한 엘리먼트(selectable element)가 포함된 영역을 상기 선택 입력 영역으로 판단할 수 있다. 예를 들어, 콘텐트 제어 모듈(440)은 상기 제1 화면 내 상기 터치 다운 지점에 상기 객체 또는 상기 선택 가능한 엘리먼트가 배치된 것으로 판단되면, 상기 터치 다운 지점이 상기 선택 입력 영역에 대응하는 것으로 확인할 수 있다. 다른 예를 들어, 콘텐트 제어 모듈(440)은 상기 제1 화면에서 상기 터치 다운에 의해 선택된 엘리먼트의 부모 엘리먼트(parent element)가 상기 객체 또는 상기 선택 가능한 엘리먼트에 대응하는 것으로 판단되면, 상기 터치 다운 지점이 상기 선택 입력 영역에 대응하는 것으로 확인할 수 있다.
일 실시 예에 따르면, 동작 507에서 스크롤 판단 모듈(420)은 동작 505의 확인 결과를 저장할 수 있다. 예를 들어, 상기 확인 결과 상기 터치 다운 지점이 상기 선택 입력 영역에 대응하지 않으면, 스크롤 판단 모듈(420)은 상기 터치 다운 지점의 선택 입력 영역 해당 여부를 체크하는 항목을 false로 설정하고, 상기 터치 슬롭을 0(zero)으로 설정할 수 있다. 상기 확인 결과 상기 터치 다운 지점이 상기 선택 입력 영역에 대응하면, 스크롤 판단 모듈(420)은 선택 입력 영역 해당 여부를 체크하는 항목을 true로 설정하고, 상기 터치 슬롭을 0(zero)보다 큰 값으로 설정할 수 있다.
일 실시 예에 따르면, 동작 511에서 터치 이벤트 입력 모듈(410)은 상기 터치 이벤트의 1번째 터치 이동을 감지할 수 있다. 다양한 실시 예에 따라, 터치 이벤트 입력 모듈(410)은 상기 터치 이벤트가 유지되는 동안 지정된 시간마다 획득하는 터치 정보를 기반으로 상기 터치 이동을 감지할 수 있다. 상기 터치 정보는 상기 터치 이벤트가 유지되는 동안 터치가 감지된 지점의 좌표, 현재 터치 지점을 기준으로 계산된 이동 속도나 이동 거리 또는 감속도 중 적어도 하나를 포함할 수 있다. 상기 지정된 시간은 디스플레이 패널(311)의 화면 재생률(refresh rate)에 대응하여 설정될 수 있다. 예를 들어, 디스플레이 패널(311)의 화면 재생률이 60Hz인 경우, 적어도 하나의 프로세서(320)는 16ms마다 상기 터치 이벤트에 관련된 터치 정보를 획득할 수 있다.
일 실시 예에 따르면, 동작 513에서 스크롤 판단 모듈(420)은 상기 터치 이벤트에 대한 터치 슬롭 체크 항목이 true로 설정됨을 확인하고, 상기 1번째 터치 이동에 의한 이동 거리가 상기 설정된 터치 슬롭을 초과하는지 여부를 확인할 수 있다. 상기 확인 결과 상기 1번째 터치 이동에 의한 이동 거리가 상기 터치 슬롭을 초과하면, 동작 515에서 스크롤 제어 모듈(430)은 상기 제1 화면에 대한 스크롤을 개시할 수 있다. 상기 확인 결과 상기 1번째 터치 이동에 의한 이동 거리가 상기 터치 슬롭을 초과하지 않으면, 스크롤 제어 모듈(430)은 상기 터치 슬롭을 초과하는 후속 터치 이동이 감지될 때까지 아무런 동작을 수행하지 않을 수 있다.
일 실시 예에 따르면, 스크롤 제어 모듈(430)에 의해 상기 제1 화면에 대한 스크롤이 발생되면, 동작 517에서 스크롤 판단 모듈(420)은 상기 터치 슬롭 체크 항목의 설정을 false로 변경할 수 있다. 스크롤 판단 모듈(420)은 상기 터치 슬롭 체크 항목이 false로 설정된 동안 감지된 터치 이동에 대하여 터치 슬롭 초과 여부를 확인하지 않고 스크롤을 수행하도록 판단할 수 있다. 콘텐트 제어 모듈(440)은 상기 제1 화면에 대한 스크롤 발생에 응답하여, 동작 519에서 상기 1번째 터치 이동에 대응하여 스크롤되는 상기 제1 화면을 표시하도록 디스플레이 모듈(310)의 상태를 업데이트할 수 있다.
일 실시 예에 따르면, 동작 521에서 터치 이벤트 입력 모듈(410)은 상기 터치 이벤트의 2번째 터치 이동을 감지할 수 있다. 상기 2번째 터치 이동을 감지함에 응답하여, 동작 523에서 스크롤 판단 모듈(420)은 상기 터치 이벤트에 대한 터치 슬롭 체크 항목이 false로 설정됨을 확인할 수 있다. 상기 터치 슬롭 체크 항목이 false로 설정된 경우, 스크롤 판단 모듈(420)은 상기 2번째 터치 이동이 감지된 시점에 상기 제1 화면에 대한 스크롤이 수행 중임을 인식하고, 상기 터치 이동에 대한 터치 슬롭 확인을 생략할 수 있다.
일 실시 예에 따르면, 동작 525에서 스크롤 제어 모듈(430)은 상기 제1 화면에 스크롤이 수행되는 동안 상기 스크롤을 종료하고자 하는 사용자 의도가 있는지 판단할 수 있다. 예를 들어, 스크롤 제어 모듈(430)은 상기 터치 이동이 감지된 시점에 획득된 터치 정보를 기반으로 해당 스크롤 구간에서의 이동 속도, 이동 거리 또는 감속도 중 적어도 하나를 확인할 수 있다. 스크롤 제어 모듈(430)은 상기 스크롤 구간에 대하여 확인된 상기 이동 거리가 제1 임계값보다 작고, 상기 스크롤 구간에서 계산된 감속도가 제2 임계값보다 크면, 사용자가 상기 스크롤을 종료하고자 하는 의도가 있는 것으로 판단할 수 있다. 상기 제1 임계값은 상기 스크롤을 지속하기 위한 최저 터치 이동 크기를 나타내고, 상기 제2 임계값은 스크롤 정지 구간을 판별하는 기준으로 정의된 감속도 값을 나타낼 수 있다. 상기 스크롤 구간의 감속도는 상기 제1 화면에 대한 스크롤 수행 중 터치 이동 거리가 가장 큰 스크롤 구간을 기준으로 계산될 수 있다. 스크롤 제어 모듈(430)은 상기 제1 임계값 및 상기 제2 임계값에 관한 판단 조건 중 적어도 어느 하나가 충족되지 않으면, 사용자가 상기 스크롤을 지속하고자 하는 의도가 있는 것으로 판단할 수 있다. 다른 예를 들어, 상기 제1 화면이 지정된 속도 미만으로 천천히 스크롤 되는 경우, 스크롤 제어 모듈(430)은 상기 터치 이동이 감지된 시점까지 측정된 각 스크롤 구간 별 터치 이동 거리를 기반으로 사용자의 스크롤 종료 의도를 판단할 수 있다. 이 경우, 스크롤 제어 모듈(430)은 터치 이동 거리가 상기 제1 임계값보다 작은 스크롤 구간을 카운트하고, 상기 카운트된 스크롤 구간의 수가 제3 임계값을 초과하면, 사용자가 상기 스크롤을 종료하고자 하는 의도가 있는 것으로 판단할 수 있다. 상기 카운트 과정에서, 스크롤 제어 모듈(430)은 터치 이동 거리가 상기 제1 임계값보다 큰 스크롤 구간이 제4 임계값을 초과하는 것으로 판단되면, 상기 카운트를 0(zero)으로 리셋하고, 이후 감지되는 터치 이동에 대하여 처음부터 다시 카운트할 수 있다. 상기 제3 임계값은 사용자의 스크롤 종료 의도를 판단하기 위한 기준 횟수로 설정된 값이고, 상기 제4 임계값은 사용자의 스크롤 지속 의도를 판단하기 위한 기준 횟수로 설정된 값일 수 있다. 스크롤 제어 모듈(430)은 상기 제3 임계값에 관한 판단 조건이 충족되지 않으면, 사용자가 상기 스크롤을 지속하고자 하는 의도가 있는 것으로 판단할 수 있다.
일 실시 예에 따르면, 동작 525의 판단 결과 상기 스크롤을 종료하고자 하는 사용자 의도가 확인되지 않으면, 스크롤 제어 모듈(430)은 동작 527에서 상기 제1 화면에 대한 스크롤을 지속하도록 결정할 수 있다. 또한, 콘텐트 제어 모듈(440)은 동작 529에서 상기 2번째 터치 이동에 대응하여 스크롤되는 상기 제1 화면을 표시하도록 디스플레이 모듈(310)의 상태를 업데이트할 수 있다.
일 실시 예에 따르면, 동작 531에서 터치 이벤트 입력 모듈(410)은 상기 터치 이벤트의 n번째 터치 이동을 감지할 수 있다. 상기 n번째 터치 이동을 감지함에 응답하여, 동작 533에서 스크롤 판단 모듈(420)은 상기 터치 이벤트에 대한 터치 슬롭 체크 항목이 false로 설정됨을 확인하고, 상기 터치 이동에 대한 터치 슬롭 확인을 생략할 수 있다.
일 실시 예에 따르면, 동작 535에서 스크롤 제어 모듈(430)은 상기 제1 화면에 스크롤이 수행되는 동안 상기 스크롤을 종료하고자 하는 사용자 의도가 있는지 판단할 수 있다. 동작 535에서 상기 사용자 의도에 대한 판단은 동작 525와 동일한 방식으로 수행될 수 있다.
일 실시 예에 따르면, 동작 535의 판단 결과 상기 스크롤을 종료하고자 하는 사용자 의도가 확인되면, 스크롤 판단 모듈(420)은 상기 제1 화면에 대한 스크롤을 멈추도록 결정하고, 상기 터치 슬롭 체크 항목의 설정값을 true로 변경할 수 있다. 스크롤 판단 모듈(420)은 상기 스크롤의 상태 변경에 응답하여, 상기 터치 슬롭을 지정된 디폴트 값으로 재설정할 수 있다.
일 실시 예에 따르면, 동작 541에서 터치 이벤트 입력 모듈(410)은 상기 터치 이벤트의 n+1번째 터치 이동을 감지할 수 있다. 상기 n+1번째 터치 이동을 감지함에 응답하여, 동작 543에서 스크롤 판단 모듈(420)은 상기 터치 이벤트에 대한 터치 슬롭 체크 항목이 true로 설정됨을 확인하고, 상기 n+1번째 터치 이동에 의한 이동 거리가 상기 설정된 터치 슬롭을 초과하는지 여부를 확인할 수 있다. 동작 543에서, 스크롤 제어 모듈(430)은 상기 n+1번째 터치 이동에 의한 이동 거리가 상기 터치 슬롭을 초과하지 않음을 확인하고, 상기 제1 화면에 대한 스크롤이 정지된 상태에서 상기 n+1번째 터치 이동에 대응하는 동작을 수행하지 않도록 결정할 수 있다.
일 실시 예에 따르면, 동작 551에서 터치 이벤트 입력 모듈(410)은 상기 터치 이벤트의 n+2번째 터치 이동을 감지할 수 있다. 상기 n+2번째 터치 이동을 감지함에 응답하여, 동작 553에서 스크롤 판단 모듈(420)은 상기 터치 이벤트에 대한 터치 슬롭 체크 항목이 true로 설정됨을 확인하고, 상기 n+2번째 터치 이동에 의한 이동 거리가 상기 설정된 터치 슬롭을 초과하는지 여부를 확인할 수 있다. 스크롤 제어 모듈(430)은 상기 n+2번째 터치 이동에 의한 이동 거리가 상기 터치 슬롭을 초과하지 않음을 확인하고, 상기 n+2번째 터치 이동에 대응하는 동작을 수행하지 않도록 결정할 수 있다.
일 실시 예에 따르면, 동작 561에서 터치 이벤트 입력 모듈(410)은 터치 해제를 감지할 수 있다. 터치 이벤트 입력 모듈(410)은 상기 감지된 터치 해제를 기반으로 상기 터치 이벤트가 종료됨을 판단할 수 있다.
일 실시 예에 따르면, 동작 563에서 스크롤 판단 모듈(420)은 상기 터치 해제를 감지함에 응답하여 상기 터치 이벤트에 대한 터치 슬롭 체크 항목을 확인할 수 있다. 예를 들어, 상기 터치 슬롭 체크 항목이 true로 설정된 경우, 스크롤 판단 모듈(420)은 상기 제1 화면에 대한 스크롤이 정지된 상태임을 확인하고, 추가 동작 없이 바로 상기 터치 이벤트가 종료되도록 처리할 수 있다. 다른 예를 들어, 상기 터치 슬롭 체크 항목이 false로 설정된 경우, 스크롤 판단 모듈(420)은 상기 제1 화면에 대한 스크롤이 수행 중인 상태임을 확인할 수 있다. 이 경우, 스크롤 제어 모듈(430)은 동작 565에서 상기 터치 이벤트가 종료되기 직전 상기 스크롤에 대하여 애니메이션 효과(예: 플링(fling))를 적용할 수 있다. 스크롤 제어 모듈(430)은 상기 스크롤의 최근 속도(예: 터치 해제 시점을 기준으로 지정된 개수의 스크롤 구간들의 평균 이동 속도)를 기반으로 상기 애니메이션 효과의 발생 속도를 설정할 수 있다. 일 실시 예에 따르면, 콘텐트 제어 모듈(440)은 동작 567에서 상기 터치 해제에 대응하여 상기 설정을 기반으로 상기 제1 화면에 대한 스크롤이 점차적으로 멈추도록 디스플레이 모듈(310)의 상태를 업데이트할 수 있다.
도 6은 일 실시 예에 따라, 터치 이벤트가 유지되는 동안 사용자의 스크롤 종료 의도를 판단하는 방식을 설명하는 도면이다. 다양한 실시 예에 따라, 전자 장치(300)는 디스플레이 모듈(예: 도 1의 디스플레이 모듈(160) 또는 도 3의 디스플레이 모듈(310))을 통해 감지된 터치 이동에 관한 정보를 기반으로 사용자의 스크롤 종료 의도를 판단할 수 있다. 도 6에 도시된 동작들은 상기 터치 이벤트가 유지되는 동안 지정된 시간마다 감지되는 터치 이동에 대하여 수행되는 동작들(예: 도 4의 동작 511 내지 동작 553)에 대응될 수 있다. 도 6의 동작들은 전자 장치(300)에 포함된 적어도 하나의 프로세서(예: 도 1의 프로세서(120) 또는 도 3의 적어도 하나의 프로세서(320), 터치 센서 제어 회로(도 3의 터치 센서 제어 회로(313)), 및/또는 도 4의 전자 장치(300)에 포함된 모듈들(예: 스크롤 판단 모듈(420) 및/또는 스크롤 제어 모듈(430))에 의해 수행될 수 있다.
도 6을 참조하면, 동작 610에서 전자 장치(300)는 디스플레이 모듈(310)을 통해 제1 화면을 표시하는 중 스크롤 상태 변경에 관한 판단이 필요한지 여부를 확인할 수 있다. 예를 들어, 전자 장치(300)는 상기 터치 이벤트가 유지되는 동안 지정된 시간 마다 획득되는 터치 정보를 기반으로 새로운 터치 이동을 감지하면, 상기 스크롤 상태 변경에 관한 판단이 필요한 것으로 인식할 수 있다.
동작 610의 확인 결과 상기 스크롤 상태 변경에 관한 판단이 필요하면 (동작 610-예), 전자 장치(300)는 동작 620에서 터치 슬롭 체크 항목이 true로 설정되어 있는지 확인할 수 있다. 상기 터치 슬롭 체크 항목은 상기 획득된 터치 정보가 터치 슬롭을 초과하는지에 대한 판단의 수행 여부를 나타낼 수 있다. 동작 620의 확인 결과 상기 터치 슬롭 체크 항목이 true로 설정되어 있으면 (동작 620-예), 전자 장치(300)는 동작 625에서 상기 터치 이동이 감지된 지점에 대응하는 구간의 이동거리가 터치 슬롭 이내인지 확인할 수 있다. 상기 터치 슬롭은 상기 제1 화면에 대한 스크롤을 발생시키는 기준이 되는 최소 이동 거리로 설정된 값일 수 있다. 동작 625의 확인 결과 상기 이동 거리가 상기 터치 슬롭 이내이면 (동작 625-예), 전자 장치(300)는 동작 635에서 상기 터치 슬롭 체크 항목을 true로 설정하고, 스크롤 이동 값을 0(zero)으로 설정하여 상기 제1 화면에 대한 스크롤이 발생하지 않도록 할 수 있다. 동작 625의 확인 결과 상기 이동 거리가 상기 터치 슬롭을 초과하면 (동작 625-아니오), 전자 장치(300)는 동작 640에서 상기 제1 화면에 대한 스크롤을 개시하고, 상기 터치 슬롭 체크 항목을 false로 설정할 수 있다.
동작 620의 확인 결과 상기 터치 슬롭 체크 항목이 false로 설정되어 있으면 (동작 620-아니오), 전자 장치(300)는 동작 630에서 상기 제1 화면에 대한 스크롤이 수행 중임을 인식하고, 상기 터치 이동에 대한 터치 슬롭 확인을 생략할 수 있다. 동작 630에서, 전자 장치(300)는 상기 터치 이동을 기반으로 사용자가 상기 스크롤을 종료하고자 하는 의도가 있는지 확인할 수 있다.
일 실시 예에 따르면, 동작 630에서 전자 장치(300)는 상기 터치 이동이 감지된 시점에 획득된 터치 정보를 기반으로 해당 스크롤 구간에서의 이동 속도, 이동 거리 또는 감속도 중 적어도 하나를 확인할 수 있다. 예시적으로, 전자 장치(300)는 상기 제1 화면에 대한 스크롤이 수행되는 동안 지정된 시간 마다 상기 터치 이동이 감지된 지점들의 좌표 정보를 획득하고, 상기 획득한 좌표 정보를 기반으로 스크롤 구간 별 이동 속도, 이동 거리 또는 감속도 중 적어도 하나를 계산할 수 있다. 예를 들어, 약 16ms 마다 상기 터치 정보를 획득하는 경우, 전자 장치(300)는 10개의 터치 이동이 감지된 지점의 좌표 정보 {(10, 10), (10, 20), (10, 40), (10, 60), (10, 90), (10, 100), (10, 102), (10, 103), (10, 103), (10, 101)}를 확인할 수 있다. 상기 좌표 정보는 디스플레이 모듈(310)에 포함된 디스플레이 패널(311) 상에 정의된 절대 좌표를 의미할 수 있다. 이 경우, 현재 터치 지점의 좌표 정보는 가장 최근에 측정된 (10, 101)이고, 좌표들 사이의 차이는 각 스크롤 구간 별 이동 속도(스크롤 양)에 대응될 수 있다. 전자 장치(300)는 상기 좌표 정보를 기반으로 각 스크롤 구간에 대한 이동 속도 {(0, 10), (0, 20), (0, 20), (0, 30), (0, 10), (0, 2), (0, 1), (0, 0), (0, -2)}를 계산할 수 있다. 전자 장치(300)는 상기 계산 결과를 기반으로 상기 좌표 정보 중 5번째 터치 이동에서의 이동 거리가 가장 크고, 상기 5번째 터치 이동에 대응하는 스크롤 구간에서의 이동 속도가 (0, 30)임을 확인할 수 있다. 다양한 실시 예에 따라, 8번째 터치 이동이 감지된 지점에서의 감속도를 구하고자 하는 경우, 전자 장치(300)는 해당 지점에 대응하는 스크롤 구간의 이동 속도가 (0, 1)임을 확인하고, 아래 수학식 1과 같이 해당 스크롤 구간의 감속도(deceleration)를 계산할 수 있다.
Figure PCTKR2022017946-appb-img-000001
이 때, 상기 스크롤을 지속하기 위한 최저 터치 이동 속도를 나타내는 제1 임계값이 2.1, 스크롤 정지 구간을 판별하는 기준으로 정의된 감속도 값을 나타내는 제2 임계값이 0.5로 설정된 것으로 가정하면, 전자 장치(300)는 7번째 터치 이동이 감지된 (10, 102) 지점부터 상기 스크롤을 멈추려는 의도가 있는 것으로 판단할 수 있다.
다른 일 실시 예에 따르면, 사용자가 지정된 속도 미만으로 천천히 터치 이동하여 스크롤 하는 경우, 동작 630에서 전자 장치(300)는 감속도 계산 없이 스크롤 구간들에서 측정된 터치 이동 속도를 기반으로 상기 스크롤을 종료하고자 하는 의도를 판단할 수 있다. 예를 들어, 약 16ms 마다 상기 터치 정보를 획득하는 경우, 전자 장치(300)는 10개의 터치 이동이 감지된 지점의 좌표 정보 {(10, 9), (10, 13), (10, 16), (10, 18), (10, 21), (10, 24), (10, 28), (10, 32), (10, 36), (10, 40)}를 확인할 수 있다. 전자 장치(300)는 상기 좌표 정보를 기반으로 각 스크롤 구간에 대한 이동 속도 {(0, 4), (0, 3), (0, 2), (0, 3), (0, 3), (0, 4), (0, 4), (0, 4), (0, 4)}를 계산할 수 있다. 이 경우, 최대 이동 속도가 측정된 스크롤 구간과 다른 스크롤 구간들 사이의 이동 속도 차이가 크지 않기 때문에 감속도 계산 결과를 이용하여 사용자의 스크롤 멈춤 의도를 판단하기에는 무리가 있을 수 있다. 따라서, 전자 장치(300)는 저속 스크롤 수행 중인 경우에는 이동 속도가 상기 제1 임계값보다 작은 스크롤 구간을 카운트하고, 상기 카운트된 스크롤 구간의 수가 제3 임계값을 초과하면 상기 스크롤을 멈추고자 하는 의도가 있는 것으로 판단할 수 있다. 상기 제3 임계값은 사용자의 스크롤 멈춤 의도를 판단하기 위한 기준 횟수로서, 사전 정의될 수 있다. 전자 장치(300)는 상기 제1 임계값보다 작은 스크롤 구간을 카운트하는 동안 상기 이동 속도가 상기 제1 임계값보다 큰 스크롤 구간을 추가 확인하고, 상기 확인된 스크롤 구간이 제4 임계값을 초과하는 것으로 판단되면, 상기 카운트를 0(zero)으로 리셋하고, 이후 감지되는 터치 이동에 대하여 처음부터 다시 카운트할 수 있다. 상기 제4 임계값은 사용자의 스크롤 지속 의도를 판단하기 위한 기준 횟수로서, 사전 정의될 수 있다.
동작 630의 확인 결과 상기 스크롤을 종료하고자 하는 의도가 있다면 (동작 630-예), 전자 장치(300)는 동작 635에서 상기 터치 슬롭 체크 항목을 true로 설정하고, 스크롤 이동 값을 0(zero)으로 설정하여 상기 제1 화면에 대한 스크롤이 발생하지 않도록 할 수 있다.
동작 630의 확인 결과 상기 스크롤을 종료하고자 하는 의도가 없으면 (동작 630-아니오), 전자 장치(300)는 상기 제1 화면에 대한 스크롤을 지속하도록 결정할 수 있다. 이 경우, 상기 터치 슬롭 체크 항목은 기 설정된 false 값으로 유지될 수 있다.
동작 610의 확인 결과 상기 스크롤 상태 변경에 관한 판단이 필요하지 않으면 (동작 610-아니오), 전자 장치(300)는 동작 640에서 상기 제1 화면에 대한 스크롤을 지속하도록 결정하고, 상기 터치 슬롭 체크 항목을 false로 설정할 수 있다.
도 7은 일 실시 예에 따라, 스크롤 종료 의도가 감지되는 경우 애니메이션 효과를 비활성화하는 방식을 설명하는 도면이다. 다양한 실시 예에 따라, 전자 장치(300)는 터치 해제 감지 시 스크롤에 관련된 애니메이션 효과(예: 플링(fling))를 적용하지 않고 터치 이벤트를 종료하도록 처리할 수 있다. 도 7에 도시된 동작들은 터치 이벤트 동안 지정된 시간 마다 획득되는 터치 정보에 대하여 판단되는 터치 슬롭 체크 관련 동작들(예: 도 4의 동작 511 내지 동작 565)에 대응될 수 있다. 도 7의 동작들은 전자 장치(300)에 포함된 적어도 하나의 프로세서(예: 도 1의 프로세서(120) 또는 도 3의 적어도 하나의 프로세서(320), 또는 도 4의 전자 장치(300)에 포함된 모듈들(예: 스크롤 판단 모듈(420) 및/또는 스크롤 제어 모듈(430))에 의해 수행될 수 있다. 다양한 실시 예에 따라, 도 7에 도시된 동작들 중 적어도 일부는 디스플레이 모듈(310)에 포함된 터치 센서 제어 회로(313)에 의해 수행될 수도 있다.
도 7을 참조하면, 동작 710에서 전자 장치(300)는 디스플레이 모듈(예: 도 1의 디스플레이 모듈(160) 또는 도 3의 디스플레이 모듈(310)) 에서 감지된 터치 정보의 타입이 터치 해제인지 확인할 수 있다.
동작 710의 확인 결과 상기 터치 정보가 터치 해제에 대응하면 (동작 710-예), 전자 장치(300)는 동작 720에서 터치 슬롭 체크 항목이 true로 설정되어 있는지 확인할 수 있다. 상기 터치 슬롭 체크 항목은 상기 획득된 터치 정보가 터치 슬롭을 초과하는지에 대한 판단의 수행 여부를 나타낼 수 있다. 동작 720의 확인 결과 상기 터치 슬롭 체크 항목이 true로 설정되어 있으면 (동작 720-아니오), 전자 장치(300)는 상기 터치 해제 전 사용자가 상기 제1 화면에 대한 스크롤을 멈추고자 하는 의도가 없었음을 인식하고, 상기 애니메이션 효과 관련 설정을 변경하지 않을 수 있다. 이 경우, 전자 장치(300)는 상기 터치 해제에 대응하여 상기 제1 화면에 대한 스크롤이 점차적으로 멈추도록 하는 애니메이션 효과를 적용할 수 있으며, 상기 애니메이션 효과의 발생 속도는 상기 스크롤의 최근 속도(예: 터치 해제 시점을 기준으로 지정된 개수의 스크롤 구간들의 평균 이동 속도)를 기반으로 결정될 수 있다.
동작 720의 확인 결과 상기 터치 슬롭 체크 항목이 true로 설정되어 있으면 (동작 720-예), 전자 장치(300)는 동작 725에서 상기 터치 해제 전 사용자가 상기 제1 화면에 대한 스크롤을 멈추고자 하는 의도가 없었음을 인식하고, 상기 애니메이션 효과 관련 설정을 변경할 수 있다. 이 경우, 전자 장치(300)는 동작 725에서, 상기 애니메이션 효과의 발생 속도를 0(zero)으로 설정하여, 스크롤 관련 애니메이션 효과를 제공하지 않고 바로 상기 터치 이벤트가 종료되도록 처리할 수 있다.
동작 710의 확인 결과 상기 터치 정보가 터치 해제에 대응하지 않으면 (동작 710-아니오), 전자 장치(300)는 상기 터치 정보가 터치 이동에 관련된 것임을 확인하고, 터치 해제 시 제공되는 스크롤 관련 애니메이션 효과에 대한 판단을 종료할 수 있다.
도 8a 및 도 8b는 일 실시 예에 따라, 터치 이벤트의 터치다운 지점을 기반으로 스크롤을 처리하는 방식을 설명하는 도면이다.
도 8a에서, 전자 장치(300)는 디스플레이 모듈(예: 도 1의 디스플레이 모듈(160) 또는 도 3의 디스플레이 모듈(310))을 통해 제1 화면(800)을 표시하는 중 터치 다운(801)이 감지된 지점이 선택 입력 영역에 대응하는지 확인할 수 있다. 상기 선택 입력 영역에 관한 판단은 도 8b를 참조하여 설명한다. 도 8b의 동작들은 전자 장치(300)에 포함된 적어도 하나의 프로세서(예: 도 1의 프로세서(120) 또는 도 3의 적어도 하나의 프로세서(320)), 터치 센서 제어 회로(예: 도 3의 터치 센서 제어 회로(313)) 및/또는 도 4의 전자 장치(300)에 포함된 모듈들(예: 터치 이벤트 입력 모듈(410), 스크롤 판단 모듈(420), 스크롤 제어 모듈(430) 또는 콘텐트 제어 모듈(440))에 의해 수행될 수 있다.
도 8b를 참조하면, 동작 810에서 전자 장치(300)는 디스플레이 모듈(310)의 디스플레이 패널(311) 상에서 제1 화면(800)을 표시하는 중 감지된 터치 정보의 타입이 터치 다운인지 확인할 수 있다.
동작 810의 확인 결과 상기 터치 정보가 터치 다운에 대응하면 (동작 810-예), 전자 장치(300)는 동작 812에서 상기 터치 다운(801) 지점이 상기 제1 화면(800) 내 터치 리스너(touch listener) (또는 사용자 입력에 연관되는 리스너)(예: 클릭 리스너(click listener) 또는 프레스 리스너(press listener))가 포함된 영역인지 확인할 수 있다. 동작 812의 확인 결과 상기 터치 다운(801) 지점에 터치 리스너(또는 사용자 입력에 연관되는 리스너)로 설정된 객체가 배치되어 있으면 (동작 812-예), 전자 장치(300)는 동작 820에서 상기 터치 다운(801) 지점이 선택 입력 영역에 대응함을 확인하고, 선택 입력 영역 항목을 true로 설정할 수 있다. 동작 812의 확인 결과 상기 터치 다운(801) 지점에 터치 리스너(또는 사용자 입력에 연관되는 리스너)로 설정된 객체가 배치되어 있지 않으면 (동작 812-아니오), 전자 장치(300)는 동작 814에서 상기 터치 다운(801) 지점이 상기 제1 화면(800) 내 사용자가 선택 가능한 엘리먼트(selectable element)가 포함된 영역인지 확인할 수 있다. 상기 선택 가능한 엘리먼트는 이미지(image), 비디오 클립(video clip), 앵커(anchor), 또는 폼(form)과 같이 상기 제1 화면(800) 내에서 선택될 수 있는 엘리먼트를 의미할 수 있다. 동작 814의 확인 결과 상기 터치 다운(801) 지점에 상기 선택 가능한 엘리먼트가 배치되어 있으면 (동작 814-예), 전자 장치(300)는 동작 820에서 상기 터치 다운(801) 지점이 선택 입력 영역에 대응함을 확인하고, 선택 입력 영역 항목을 true로 설정할 수 있다. 상기 선택 입력 영역 항목이 true로 설정된 경우, 전자 장치(300)는 터치 슬롭을 0(zero)보다 큰 값(또는 디폴트 값)으로 설정하여, 이후 감지되는 터치 이동이 스크롤을 위한 입력인지 또는 특정 엘리먼트를 선택하기 위한 입력인지 확인할 수 있다. 동작 814의 확인 결과 상기 터치 다운(801) 지점에 상기 선택 가능한 엘리먼트가 배치되어 있지 않으면 (동작 814-아니오), 전자 장치(300)는 동작 816에서 상기 제1 화면(800) 내 상기 터치 다운(801) 지점의 엘리먼트가 부모 엘리먼트(parent element)를 포함하는지 확인할 수 있다. 상기 부모 엘리먼트는 상기 엘리먼트의 뷰(view)를 감싸는 상위 엘리먼트를 의미할 수 있다. 동작 816의 확인 결과 부모 엘리먼트가 없으면 (동작 816-아니오), 전자 장치(300)는 동작 822에서 상기 터치 다운(801) 지점이 선택 입력 영역에 대응하지 않음을 확인하고, 선택 입력 영역 항목을 false로 설정할 수 있다. 상기 선택 입력 영역 항목이 false로 설정된 경우, 전자 장치(300)는 터치 슬롭을 0(zero)으로 설정하여, 이후 감지되는 터치 이동에 대하여 터치 슬롭 확인 없이 바로 스크롤을 개시할 수 있다. 동작 816의 확인 결과 부모 엘리먼트가 존재하면 (동작 816-예), 전자 장치(300)는 동작 818에서 상기 부모 엘리먼트에 대해서도 선택 입력 영역 대응 여부를 확인할 수 있다. 동작 818에서, 전자 장치(300)는 상기 부모 엘리먼트에 대해서도 동일한 방식(예: 동작 812 내지 816)으로 제1 화면(800) 내 선택 입력 영역에 대응하는지 확인하는지 확인할 수 있다.
동작 810의 확인 결과 상기 터치 정보가 터치 다운에 대응하지 않으면 (동작 810-아니오), 전자 장치(300)는 동작 830에서 상기 터치 정보가 터치 이동에 대응하는지 추가 확인할 수 있다. 동작 830의 확인 결과 상기 터치 정보가 터치 이동에 대응하면 (동작 830-예), 전자 장치(300)는 동작 832에서 상기 터치 이동에 대해 특정 엘리먼트를 선택하기 위한 입력인지 확인할 수 있다. 예를 들어, 전자 장치(300)는 상기 터치 이동에 의한 이동 거리가 터치 슬롭 이내인지, 및/또는 상기 터치 이동이 감지된 지점이 선택 입력 영역에 대응하는지 확인할 수 있다. 동작 832의 확인 결과 상기 두 가지 조건을 모두 충족하면 (동작 832-예), 전자 장치(300)는 상기 터치 이동을 사용자의 선택을 의도한 터치 입력으로 판단하여 처리할 수 있다. 동작 832의 확인 결과 상기 두 가지 조건이 모두 충족되지 않으면 (동작 832-아니오), 전자 장치(300)는 동작 834에서 상기 터치 이동을 상기 제1 화면(800)에 대한 스크롤 입력으로 판단하고, 상기 제1 화면(800)에 대한 스크롤을 수행할 수 있다.
동작 830의 확인 결과 상기 터치 정보가 터치 이동에 대응하지 않으면 (동작 830-아니오), 전자 장치(300)는 상기 터치 정보가 터치 해제에 관한 것임을 확인하고, 터치 이벤트가 종료된 것으로 판단하여 처리할 수 있다.
도 9는 일 실시 예에 따라, 스크롤 영역에서 감지된 터치 정보를 처리하는 방식을 설명하는 도면이다. 다양한 실시 예에 따라, 전자 장치(300)는 디스플레이 패널(예: 도 1의 디스플레이 모듈(160) 또는 도 3의 디스플레이 패널(311)) 상의 스크롤 영역에서 감지된 터치 정보에 대해 스크롤을 위한 입력인지 또는 특정 엘리먼트를 선택하기 위한 입력인지 판단할 수 있다. 상기 스크롤 영역은 상기 디스플레이 패널(311) 상에서 스크롤이 자주 발생하는 것으로 확인된 영역일 수 있다. 도 9에 도시된 동작들은 전자 장치(300)에 포함된 적어도 하나의 프로세서(예: 도 1의 프로세서(120) 또는 도 3의 적어도 하나의 프로세서(320)), 터치 센서 제어 회로(예: 도 3의 터치 센서 제어 회로(313)), 및/또는 도 4의 전자 장치(300)에 포함된 모듈들(예: 스크롤 판단 모듈(420) 및/또는 스크롤 제어 모듈(430))에 의해 수행될 수 있다.
도 9를 참조하면, 동작 910에서 전자 장치(300)는 상기 스크롤 영역에서 터치 정보를 감지함에 응답하여, 상기 터치 정보의 타입이 터치 해제인지 확인할 수 있다.
동작 910의 확인 결과 상기 터치 정보가 터치 해제에 대응하면 (동작 910-예), 전자 장치(300)는 동작 912에서 상기 제1 화면에 대한 스크롤을 종료하도록 결정하고, 동작 914에서 상기 터치 해제 시 감지된 이동 거리가 터치 슬롭 이내인지 확인할 수 있다. 동작 914의 확인 결과 상기 이동 거리가 상기 터치 슬롭 이내이면(동작 914-예), 전자 장치(300)는 동작 916에서 상기 감지된 터치정보가 상기 제1 화면 내 객체 또는 엘리먼트를 선택하기 위한 입력임을 인식하고, 탭 이벤트로 처리할 수 있다. 동작 914의 확인 결과 상기 이동 거리가 상기 터치 슬롭을 초과하면(동작 914-아니오), 전자 장치(300)는 상기 터치 정보를 탭 이벤트로 처리하지 않고 상기 터치 정보에 대한 판단을 종료할 수 있다.
동작 910의 확인 결과 상기 터치 정보가 터치 해제에 대응하지 않으면 (동작 910-아니오), 전자 장치(300)는 동작 920에서 상기 터치 정보가 터치 이동에 대응하는지 추가 확인할 수 있다. 동작 920의 확인 결과 상기 터치 정보가 터치 이동에 대응하면 (동작 920-예), 전자 장치(300)는 동작 922에서 상기 제1 화면에 대한 스크롤을 수행하고, 동작 924에서 상기 터치 이동에 의한 이동 거리가 터치 슬롭 이내인지 확인할 수 있다. 이 때, 전자 장치(300)는 동작 922를 먼저 수행한 후 동작 924를 수행함으로써, 터치 이벤트에 대한 반응 속도를 높일 수 있다. 동작 924의 확인 결과 상기 이동 거리가 상기 터치 슬롭을 초과하면 (동작 924-아니오), 전자 장치(300)는 상기 감지된 터치정보가 상기 제1 화면을 스크롤하기 위한 입력임을 인식하고, 탭 캔슬하도록 처리할 수 있다. 동작 924의 확인 결과 상기 이동 거리가 상기 터치 슬롭 이내이면 (동작 924-예), 전자 장치(300)는 상기 터치 정보를 탭 캔슬로 처리하지 않고 상기 터치 정보에 대한 판단을 종료할 수 있다.
동작 920의 확인 결과 상기 터치 정보가 터치 이동에 대응하지 않으면 (동작 920-아니오), 전자 장치(300)는 아무런 동작을 수행하지 않고 상기 터치 정보에 대한 판단을 종료할 수 있다.
도 10a 및 도 10b는 일 실시 예에 따라, 사용자의 터치 패턴을 고려하여 스크롤을 처리하는 방식을 설명하는 도면이다.
다양한 실시 예에 따라, 전자 장치(300)는 디스플레이 모듈(310)에 포함된 디스플레이 패널(311)을 복수 개의 영역으로 분할하고, 상기 분할된 각 영역별 터치 패턴을 기록할 수 있다. 예를 들어, 전자 장치(300)는 상기 복수 개의 영역들 각각에 대하여 확인된 스크롤 발생 횟수를 누적하여 각 영역 별 스크롤 발생 확률을 계산하고, 상기 계산된 각 영역별 스크롤 발생 확률을 기반으로 도 10a와 같은 스크롤 맵(scroll map)을 생성할 수 있다. 예시적으로, 전자 장치(300)는 디스플레이 패널(311) 상에서 상측 방향을 향하는 스크롤이 자주 발생하는 영역을 제1 스크롤 영역(1001)으로, 디스플레이 패널(311) 상에서 하측 방향을 향하는 스크롤이 자주 발생하는 영역을 제2 스크롤 영역(1002)로 각각 정의하여 관리할 수 있다. 전자 장치(300)는 상기 제1 스크롤 영역(1001) 또는 상기 제2 스크롤 영역(1002)에서 감지되는 터치 정보에 대해서는 터치 슬롭을 무시하거나 설정 값을 낮추어, 스크롤을 보다 빠르게 수행하도록 처리할 수 있다. 예를 들어, 전자 장치(300)는 상기 제1 스크롤 영역(1001) 또는 상기 제2 스크롤 영역(1002)의 스크롤 발생 확률에 비례하는 상수 K를 결정하고, 터치 슬롭의 디폴트 값을 상기 결정된 상수 K로 나누어 상기 터치 슬롭을 설정할 수 있다. 상기 상수 K는 1보다 큰 자연수로서, 상기 터치 다운 지점의 스크롤 발생 확률이 높을수록 0(zero)에 가까운 값이 상기 터치 슬롭으로 설정될 수 있다. 일 실시 예에서, 터치 슬롭을 무시하거나 그 설정 값을 낮추는 경우, 전자 장치(300)는 사용자가 선택 입력으로 의도한 터치 정보에 대해서도 터치 슬롭을 초과한 것으로 판단하여 선택 동작으로 처리하지 않는 오동작이 발생할 수 있다. 이러한 오동작을 방지하기 위해, 전자 장치(300)는 상기 제1 스크롤 영역(1001) 또는 상기 제2 스크롤 영역(1002)에서 감지되는 터치 정보에 대해서는 도 9의 동작들을 수행하여 스크롤 수행 중 탭 이벤트 처리가 가능해지도록 할 수 있다.
다양한 실시 예에 따라, 전자 장치(300)는 디스플레이 패널(311) 상에 정의된 복수 개의 영역들 중 스크롤 발생 확률이 상당히 낮은 영역을 선택 입력 처리 영역으로 정의할 수 있다. 전자 장치(300)는 상기 선택 입력 처리 영역에서 감지된 터치 정보에 대해서는 선택을 의도한 터치 입력으로 미리 예측할 수 있다. 이 경우, 전자 장치(300)는 상기 터치 정보가 감지된 지점에 배치된 링크에 대한 전처리 작업(예: DNS(domain name system)에 미리 접속하여 해당 링크의 IP 주소 획득, TCP 핸드쉐이킹(TCP handshaking), 또는 프리패치(prefetching) 동작)을 수행할 수 있다.
다양한 실시 예에 따라, 상기 스크롤 맵을 활용하여 터치 정보를 판단하는 과정은 도 10b를 참조하여 설명한다. 도 10b의 동작들은 전자 장치(300)에 포함된 적어도 하나의 프로세서(예: 도 1의 프로세서(120) 또는 도 3의 적어도 하나의 프로세서(320)), 터치 센서 제어 회로(도 3의 터치 센서 제어 회로(313)), 및/또는 도 4의 전자 장치(300)에 포함된 모듈들(예: 터치 이벤트 입력 모듈(410), 스크롤 판단 모듈(420), 스크롤 제어 모듈(430) 또는 콘텐트 제어 모듈(440))에 의해 수행될 수 있다.
도 10b를 참조하면, 동작 1010에서 전자 장치(300)는 디스플레이 모듈(310)을 통해 감지된 터치 정보의 타입이 터치 다운인지 확인할 수 있다.
동작 1010의 확인 결과 상기 터치 정보가 터치 다운에 대응하면 (동작 1010-예), 전자 장치(300)는 동작 1012에서 상기 터치 다운 지점이 상기 스크롤 맵에 정의된 스크롤 영역에 대응하는지 확인할 수 있다. 동작 1012의 확인 결과 상기 터치 다운 지점이 상기 스크롤 영역에 대응하면 (동작 1012-예), 전자 장치(300)는 동작 1014에서 상기 스크롤 영역의 스크롤 발생 확률을 기반으로 터치 슬롭을 재설정할 수 있다. 예를 들어, 전자 장치(300)는 상기 스크롤 영역의 스크롤 발생 확률에 대응하는 상수 K를 결정하고, 터치 슬롭의 디폴트 값을 상기 결정된 상수 K로 나누어 상기 터치 슬롭을 재설정함으로써, 해당 스크롤 영역의 터치 슬롭을 낮출 수 있다. 동작 1012의 확인 결과 상기 터치 다운 지점이 상기 스크롤 영역에 대응하지 않으면 (동작 1012-아니오), 전자 장치(300)는 상기 터치 슬롭을 재설정하지 않고, 디폴트 값(또는 초기 상태)을 유지할 수 있다.
동작 1010의 확인 결과 상기 터치 정보가 터치 다운에 대응하지 않으면 (동작 1010-아니오), 전자 장치(300)는 동작 1020에서 상기 터치 정보가 터치 이동에 대응하는지 확인할 수 있다. 동작 1020의 확인 결과 상기 터치 정보가 터치 이동에 대응하면 (동작 1020-예), 전자 장치(300)는 동작 1022에서 상기 터치 이동에 의한 이동 거리가 터치 슬롭 이내인지 확인할 수 있다. 동작 1022의 확인 결과 상기 이동 거리가 상기 터치 슬롭을 초과하면 (동작 1022-아니오), 전자 장치(300)는 동작 1024에서 상기 터치 이동에 대응하는 스크롤을 수행할 수 있다. 동작 1022의 확인 결과 상기 이동 거리가 상기 터치 슬롭 이내이면 (동작 1022-예), 전자 장치(300)는 상기 터치 이동에 대응하는 스크롤을 수행하지 않도록 처리할 수 있다.
동작 1020의 확인 결과 상기 터치 정보가 터치 이동에 대응하지 않으면 (동작 1020-아니오), 전자 장치(300)는 동작 1030에서 상기 터치 정보가 터치 해제에 대응하는지 확인할 수 있다. 동작 1030의 확인 결과 상기 터치 정보가 터치 해제에 대응하면 (동작 1030-예), 전자 장치(300)는 동작 1032에서 상기 터치 해제를 기반으로 스크롤 관련 애니메이션 효과를 적용하고 상기 스크롤 맵을 업데이트할 수 있다. 상기 스크롤 맵의 업데이트는 터치 이벤트가 종료되는 시점마다 수행될 수 있다. 동작 1030의 확인 결과 상기 터치 정보가 터치 해제에 대응하지 않으면 (동작 1030-아니오), 전자 장치(300)는 상기 터치 정보에 대응하는 아무런 동작을 수행하지 않고, 상기 터치 정보를 무시하도록 처리할 수 있다.
도 11은 일 실시 예에 따른, 전자 장치의 동작 방법을 도시하는 흐름도이다. 일 실시 예에 따르면, 전자 장치(300)는 터치 이벤트를 기반으로 사용자 의도를 미리 판단하여 스크롤 상태를 제어하는 장치로서, 도 1에 도시된 전자 장치(101) 또는 도 3에 도시된 전자 장치(300)에 대응될 수 있다. 도 11의 동작들은 전자 장치(300)에 포함된 적어도 하나의 프로세서(예: 도 1의 프로세서(120) 또는 도 3의 적어도 하나의 프로세서(320)) 또는 터치 센서 제어 회로(예: 도 3의 터치 센서 제어 회로(313))에 의해 수행될 수 있다.
도 11을 참조하면, 동작 1110에서 전자 장치(300)는 디스플레이 패널(예: 도 1의 디스플레이 모듈(160) 또는 도 3의 디스플레이 패널(311))을 통해 제1 화면을 표시하는 중 제1 터치 이벤트를 감지하고, 스크롤을 발생시키는 기준이 되는 최소 이동 거리인 터치 슬롭(touch slop)을 설정할 수 있다. 상기 터치 이벤트는 사용자에 의해 입력된 터치 제스처로서, 터치 다운(touch down), 터치 이동(touch move), 또는 터치 해제(touch release)의 동작으로 구분될 수 있다. 다양한 실시 예에 따라, 전자 장치(300)는 터치 다운이 발생한 후 터치가 해제될 때까지 상기 터치 이벤트가 유지된 것으로 인식하고, 상기 터치 이벤트가 유지되는 동안 터치 지점이 어느 방향으로 얼마나 이동하는지 지속적으로 확인할 수 있다.
다양한 실시 예에 따라, 전자 장치(300)는 동작 1110에서, 상기 터치 다운이 감지된 위치에 따라 다양한 값으로 상기 터치 슬롭을 설정할 수 있다. 예를 들어, 전자 장치(300)는 상기 터치 이벤트의 터치 다운 지점이 디스플레이 패널(311)을 통해 표시되고 있는 제1 화면 내 선택 입력 영역에 대응하는지 확인하고, 상기 확인 결과를 기반으로 상기 터치 슬롭을 설정할 수 있다. 상기 선택 입력 영역은 상기 제1 화면 내에서 터치 리스너(touch listener)(또는 사용자 입력에 연관되는 리스너) (예: 클릭 리스너(click listener) 또는 프레스 리스너(press listener))로 설정된 객체, 또는 이미지(image), 비디오 클립(video clip), 앵커(anchor), 폼(form)과 같이 사용자가 선택 가능한 엘리먼트(selectable element)가 포함된 영역일 수 있다. 전자 장치(300)는 상기 터치 다운 지점이 상기 객체 또는 상기 선택 가능한 엘리먼트에 대응하거나, 또는 상기 터치 다운에 의해 선택된 엘리먼트의 부모 엘리먼트(parent element)가 상기 객체 또는 상기 선택 가능한 엘리먼트에 대응하는 경우, 상기 터치 다운 지점이 상기 선택 입력 영역에 대응하는 것으로 확인할 수 있다. 상기 터치 다운 지점이 상기 제1 화면 내 선택 입력 영역에 대응하지 않는 경우 상기 터치 다운 지점에 상기 선택 가능한 엘리먼트가 없으므로, 전자 장치(300)는 상기 터치 슬롭을 0(zero)으로 설정하여, 터치 이동 감지 시 터치 슬롭 확인 없이 바로 스크롤을 개시하도록 처리할 수 있다. 상기 터치 다운 지점이 상기 제1 화면 내 선택 입력 영역에 대응하는 것으로 확인되면, 전자 장치(300)는 상기 터치 슬롭을 0(zero)보다 큰 값으로 설정하여, 이후 감지된 터치 이동이 스크롤을 위한 입력인지 또는 특정 엘리먼트를 선택하기 위한 입력인지 확인할 수 있다. 이 경우, 전자 장치(300)는 감지된 터치 이동 거리가 상기 설정된 터치 슬롭보다 작으면 상기 터치 이동을 특정 엘리먼트를 선택하기 위한 입력으로 판단할 수 있다. 반대로, 전자 장치(300)는 감지된 터치 이동 거리가 상기 설정된 터치 슬롭보다 크면 상기 터치 이동을 스크롤 입력으로 판단하고, 상기 터치 이동 거리에 대응하여 스크롤을 수행할 수 있다.
다른 예를 들어, 전자 장치(300)는 사용자의 스크롤 패턴이 정의된 스크롤 맵(scroll map)을 기반으로 상기 터치 이벤트의 터치 다운 지점이 스크롤 영역(scroll area)에 대응하는지 확인하고, 상기 확인 결과를 기반으로 상기 터치 슬롭을 설정할 수 있다. 전자 장치(300)는 디스플레이 모듈(310)의 디스플레이 패널(311) 상에 포함된 복수 개의 영역들 각각의 스크롤 발생 확률과, 높은 확률로 스크롤이 발생하는 스크롤 영역을 정의한 스크롤 맵을 메모리(예: 도 1의 메모리(130) 또는 도 3의 메모리(330))에 저장하여 관리할 수 있다. 전자 장치(300)는 상기 터치 이벤트의 터치 다운을 감지하면, 메모리(330)로부터 상기 스크롤 맵을 로드하여, 상기 터치 다운된 지점의 스크롤 발생 확률 또는 상기 터치 다운 지점이 상기 스크롤 영역에 대응하는지 여부를 확인할 수 있다. 전자 장치(300)는 상기 터치 다운 지점이 상기 스크롤 영역에 대응하는 것으로 확인하면, 상기 터치 다운 지점의 스크롤 발생 확률을 기반으로 상기 터치 슬롭을 설정할 수 있다. 예시적으로, 전자 장치(300)는 스크롤 발생 확률에 비례하는 상수 K를 결정하고, 터치 슬롭의 디폴트 값을 상기 결정된 상수 K로 나누어 상기 터치 슬롭을 설정할 수 있다. 이로 인해, 상기 터치 다운 지점의 스크롤 발생 확률이 높을수록 0(zero)에 가까운 값이 상기 터치 슬롭으로 설정될 수 있다. 상기 터치 다운 지점이 상기 스크롤 영역에 대응하지 않는 경우에는, 전자 장치(300)는 상기 터치 슬롭에 대한 설정 변경 없이 상기 디폴트 값을 기준으로 스크롤 수행 여부를 판단할 수 있다.
일 실시 예에 따르면, 동작 1120에서 전자 장치(300)는 상기 터치 이벤트가 유지되는 동안 지정된 시간 마다 현재 터치 지점에 연관되는 터치 정보를 획득할 수 있다. 상기 터치 정보는 상기 터치 이벤트가 유지되는 동안 터치가 감지된 지점의 좌표, 현재 터치 지점을 기준으로 계산된 이동 속도나 이동 거리 또는 감속도 중 적어도 하나를 포함할 수 있다. 상기 지정된 시간은 디스플레이 패널(311)의 화면 재생률(refresh rate)에 대응될 수 있다. 예를 들어, 디스플레이 패널(311)의 화면 재생률이 60Hz인 경우, 전자 장치(300)는 16ms마다 상기 터치 정보를 획득할 수 있다. 다른 예를 들어, 디스플레이 패널(311)의 화면 재생률이 120Hz이면, 전자 장치(300)는 8ms마다 상기 터치 정보를 획득할 수 있다.
일 실시 예에 따르면, 동작 1130에서 전자 장치(300)는 상기 획득된 터치 정보를 기반으로 터치 이동 거리가 상기 설정된 터치 슬롭을 초과하는지 여부를 확인할 수 있다. 상기 확인 결과 상기 터치 이동 거리가 상기 터치 슬롭을 초과하지 않으면, 전자 장치(300)는 상기 터치 슬롭을 초과하는 터치 이동이 감지될 때까지 상기 제1 화면에 대한 스크롤을 수행하지 않을 수 있다. 상기 확인 결과 상기 터치 이동 거리가 상기 터치 슬롭을 초과하면, 전자 장치(300)는 상기 터치 이동에 대응하여 상기 제1 화면에 대한 스크롤을 개시하도록 디스플레이 모듈(310)을 제어할 수 있다.
일 실시 예에 따르면, 동작 1140에서 전자 장치(300)는 상기 제1 화면에 대한 스크롤이 수행되는 동안 획득된 상기 터치 정보를 기반으로 상기 터치 이벤트의 이동 속도, 이동 거리 또는 감속도 중 적어도 하나를 포함하는 스크롤 데이터를 확인할 수 있다. 예를 들어, 전자 장치(300)는 상기 스크롤이 수행되는 동안 상기 지정된 시간 마다 터치 이동이 감지된 지점들의 좌표 정보를 획득하고, 상기 획득한 좌표 정보를 기반으로 스크롤 구간 별 이동 속도, 이동 거리 또는 감속도 중 적어도 하나를 계산할 수 있다. 상기 스크롤 구간은 상기 터치 정보가 획득되는 시간 주기인 상기 지정된 시간에 대응될 수 있다.
일 실시 예에 따르면, 동작 1150에서 전자 장치(300)는 상기 스크롤 데이터를 기반으로 상기 스크롤의 종료 여부를 판단할 수 있다. 예를 들어, 전자 장치(300)는 상기 스크롤 데이터를 기반으로 현재 터치 이동 지점에 대응하는 스크롤 구간의 이동 거리를 확인하고, 상기 확인된 이동 거리를 제1 임계값과 비교할 수 있다. 상기 제1 임계값은 상기 스크롤을 지속하기 위한 최저 터치 이동 크기를 나타낼 수 있다. 전자 장치(300)는 상기 비교 결과 상기 확인된 이동 거리가 상기 제1 임계값보다 작으면, 상기 스크롤의 상태 변경 여부를 추가 확인할 수 있다. 전자 장치(300)는 상기 터치 정보를 기반으로 상기 제1 화면에 대한 스크롤이 수행되는 중 터치 이동 거리가 가장 큰 제1 스크롤 구간을 확인하고, 상기 제1 스크롤 구간을 기준으로 현재 터치 이동 지점에서의 감속도를 계산할 수 있다. 전자 장치(300)는 상기 계산된 감속도를 제2 임계값의 비교 연산을 통해 스크롤 지속 여부에 대한 사용자 의도를 확인할 수 있다. 상기 제2 임계값은 스크롤 정지 구간을 판별하는 기준으로 정의된 감속도 값을 나타낼 수 있다. 상기 비교 결과 상기 계산된 감속도가 상기 제2 임계값보다 크면, 전자 장치(300)는 사용자가 상기 스크롤을 멈추고자 하는 의도가 있음을 판단하고, 상기 제1 화면에 대한 스크롤을 정지하도록 디스플레이 모듈(310)을 제어할 수 있다.
다양한 실시 예에 따라, 전자 장치(300)는 저속 스크롤 상황에서는 감속도 측정 없이, 스크롤 구간들에서 측정된 터치 이동거리를 기반으로 사용자 의도를 판단할 수 있다. 사용자가 천천히 터치 이동하여 스크롤 하는 경우, 상기 제1 스크롤 구간과 다른 스크롤 구간에서의 터치 이동거리의 차이가 크지 않기 때문에, 스크롤이 자주 정지될 수 매의 있다. 이를 를 방지위해, 전자 장치(300)는 상기 제1 화면에 대한 스크롤이 수행되는 동안 상기 터치 정보를 기반으로 확인된 이동 거리가 상기 제1 임계값보다 작은 스크롤 구간을 카운트할 수 있다. 전자 장치(300)는 상기 카운트된 스크롤 구간의 수가 제3 임계값을 초과하는 것으로 판단되면, 상기 스크롤을 멈추고자 하는 사용자 의도가 있음을 판단하고, 상기 스크롤이 정지하도록 디스플레이 모듈(310)을 제어할 수 있다. 상기 제3 임계값은 사용자의 스크롤 멈춤 의도를 판단하기 위한 기준 횟수로서, 사전 정의될 수 있다. 전자 장치(300)는 상기 제1 임계값보다 작은 스크롤 구간을 카운트하는 동안 상기 확인된 이동 거리가 상기 제1 임계값보다 큰 스크롤 구간을 추가 확인할 수 있다. 전자 장치(300)는 상기 제1 임계값보다 큰 스크롤 구간이 제4 임계값을 초과하는 것으로 판단되면, 상기 스크롤을 지속하고자 하는 사용자 의도를 판단하고, 상기 카운트를 0(zero)으로 리셋할 수 있다. 상기 제4 임계값은 사용자의 스크롤 지속 의도를 판단하기 위한 기준 횟수로서, 사전 정의될 수 있다.
동작 1150 이후, 전자 장치(300)는 상기 터치 이벤트의 터치 해제를 감지할 수 있다. 전자 장치(300)는 상기 터치 해제를 감지함에 응답하여, 상기 제1 화면에 대한 스크롤 상태를 확인하고, 상기 확인된 상태를 기반으로 스크롤 관련 애니메이션 효과의 적용 여부를 결정할 수 있다. 예를 들어, 전자 장치(300)는 상기 제1 화면에 대한 스크롤을 수행 중인 상태에서 상기 터치 해제를 감지하면, 최근 스크롤 속도(예: 터치 해제 시점을 기준으로 지정된 개수의 스크롤 구간들의 평균 이동 속도)를 기반으로 상기 스크롤의 종료 직전에 적용될 애니메이션 효과(예: 플링(fling))의 발생 속도를 결정할 수 있다. 다른 예를 들어, 전자 장치(300)는 상기 제1 화면에 대한 스크롤이 정지된 상태에서 상기 터치 해제를 감지하면, 상기 제1 화면에 대한 스크롤을 멈추고자 하는 사용자 의도가 있었던 것으로 판단할 수 있다. 이 경우, 전자 장치(300)는 상기 애니메이션 효과의 발생 속도를 0(zero)으로 결정하여, 상기 스크롤에 대한 애니메이션 효과 적용 없이 상기 스크롤이 정지된 상태에서 바로 상기 터치 이벤트가 종료되도록 처리할 수 있다.
일 실시 예에 따른 전자 장치(예: 전자 장치(300))는, 디스플레이 모듈(예: 디스플레이 모듈(310)), 상기 디스플레이 모듈과 작동적으로 연결된 적어도 하나의 프로세서(예: 프로세서(320)), 및 상기 적어도 하나의 프로세서와 작동적으로 연결된 메모리(예: 메모리(330))를 포함하고, 상기 메모리는, 실행 시에, 상기 적어도 하나의 프로세서가, 제1 터치 이벤트를 감지함에 응답하여, 스크롤 수행 기준이 되는 터치 슬롭(touch slop)을 설정하고, 상기 제1 터치 이벤트가 유지되는 동안 지정된 시간 마다 현재 터치 지점에 대응하는 터치 정보를 획득하고, 상기 획득된 터치 정보를 기반으로 터치 이동 거리가 상기 터치 슬롭을 초과하는 것으로 판단되면, 상기 디스플레이 모듈에 표시된 제1 화면에 대한 스크롤을 개시하고, 상기 스크롤이 수행되는 동안 획득된 상기 터치 정보를 기반으로 상기 제1 터치 이벤트의 이동 속도, 이동 거리 또는 감속도 중 적어도 하나를 포함하는 스크롤 데이터를 확인하고, 상기 스크롤 데이터를 기반으로 상기 스크롤의 종료 여부를 판단하여, 상기 제1 화면에 대한 스크롤의 상태를 제어하도록 하는 인스트럭션들을 저장할 수 있다.
일 실시 예에서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서가, 상기 제1 터치 이벤트를 감지함에 응답하여, 상기 제1 터치 이벤트의 터치 다운(touch down) 지점이 상기 제1 화면 내 선택 입력 영역에 대응하는지 확인하고, 상기 확인 결과를 기반으로 상기 터치 슬롭을 설정하도록 할 수 있다.
일 실시 예에서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서가, 상기 터치 다운 지점이 상기 선택 입력 영역에 대응하지 않는 것으로 판단되면, 상기 터치 슬롭을 0(zero)으로 설정하고, 상기 터치 다운 지점이 상기 선택 입력 영역에 대응하는 것으로 판단되면, 상기 터치 슬롭을 0(zero)보다 큰 값으로 설정하도록 할 수 있다.
일 실시 예에서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서가, 상기 터치 정보를 기반으로 상기 제1 화면에 대한 스크롤이 수행되는 동안 스크롤 구간 별 이동 거리를 확인하고, 상기 확인된 이동 거리가 제1 임계값보다 작으면 상기 스크롤의 상태를 변경하도록 하며, 상기 스크롤 구간은 상기 지정된 시간에 대응하도록 설정될 수 있다.
일 실시 예에서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서가, 상기 터치 정보를 기반으로 상기 제1 화면에 대한 스크롤이 수행되는 중 상기 이동 거리가 가장 큰 제1 스크롤 구간을 확인하고, 상기 제1 스크롤 구간을 기준으로 현재 감속도를 계산하고, 상기 계산된 감속도가 제2 임계값보다 크면 상기 스크롤을 정지시키도록 할 수 있다.
일 실시 예에서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서가, 상기 제1 화면에 대한 스크롤이 수행되는 동안 상기 확인된 이동 거리가 상기 제1 임계값보다 작은 스크롤 구간을 카운트하고, 상기 카운트된 스크롤 구간의 수가 제3 임계값을 초과하면 상기 스크롤을 정지시키도록 할 수 있다.
일 실시 예에서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서가, 상기 이동 거리가 상기 제1 임계값보다 작은 스크롤 구간을 카운트하는 동안 상기 제1 임계값보다 큰 스크롤 구간이 제4 임계값을 초과하면, 상기 카운트를 리셋하도록 할 수 있다.
일 실시 예에서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서가, 상기 터치 정보를 기반으로 상기 제1 화면에 대한 스크롤이 수행되는 동안 스크롤 구간 별 이동 속도를 확인하고, 상기 확인된 이동 속도를 기반으로 계산된 평균 속도가 지정된 속도 이하이면, 상기 제1 임계값을 지정된 값 미만으로 변경하여 설정하도록 할 수 있다.
일 실시 예에서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서가, 상기 제1 터치 이벤트를 감지함에 응답하여, 상기 메모리에 저장된 스크롤 맵을 확인하고, 스크롤 맵을 기반으로 상기 제1 터치 이벤트의 터치 다운(touch down) 지점이 상기 디스플레이 모듈 내 스크롤 영역에 대응하는지 확인하고, 상기 터치 다운 지점이 상기 스크롤 영역에 대응하면, 상기 터치 다운 지점의 스크롤 발생 확률을 기반으로 상기 터치 슬롭을 설정하도록 하며, 상기 스크롤 맵은 상기 디스플레이 모듈에 포함된 복수 개의 영역들에 대한 스크롤 발생 확률과 상기 복수 개의 영역들 각각의 스크롤 발생 확률을 기반으로 결정된 스크롤 영역 관련 정보를 포함할 수 있다.
일 실시 예에서, 상기 인스트럭션들은, 상기 적어도 하나의 프로세서가, 상기 제1 터치 이벤트의 터치 해제를 감지하면, 상기 제1 화면에 대한 스크롤 제어 상태를 확인하고, 상기 확인된 제어 상태를 기반으로 상기 스크롤에 관련된 애니메이션 효과의 발생 속도를 결정하고, 상기 제1 터치 이벤트가 종료된 것으로 처리하도록 할 수 있다.
다른 실시 예에 따른 전자 장치(예: 전자 장치(300))의 동작 방법은, 제1 터치 이벤트를 감지함에 응답하여, 스크롤 수행 기준이 되는 터치 슬롭(touch slop)을 설정하는 동작, 상기 제1 터치 이벤트가 유지되는 동안 지정된 시간 마다 현재 터치 지점에 대응하는 터치 정보를 획득하는 동작, 상기 획득된 터치 정보를 기반으로 터치 이동 거리가 상기 터치 슬롭을 초과하는 것으로 판단되면, 디스플레이 모듈(예: 디스플레이 모듈(310))에 표시된 제1 화면에 대한 스크롤을 개시하는 동작, 상기 스크롤이 수행되는 동안 획득된 상기 터치 정보를 기반으로 상기 제1 터치 이벤트의 이동 속도, 이동 거리 또는 감속도 중 적어도 하나를 포함하는 스크롤 데이터를 확인하는 동작, 및 상기 스크롤 데이터를 기반으로 상기 스크롤의 종료 여부를 판단하여, 상기 제1 화면에 대한 스크롤의 상태를 제어하는 동작을 포함할 수 있다.
일 실시 예에서, 상기 터치 슬롭을 설정하는 동작은, 상기 제1 터치 이벤트를 감지함에 응답하여, 상기 제1 터치 이벤트의 터치 다운(touch down) 지점이 상기 제1 화면 내 선택 입력 영역에 대응하는지 확인하는 동작, 및 상기 확인 결과를 기반으로 상기 터치 슬롭을 설정하는 동작을 포함할 수 있다.
일 실시 예에서, 상기 터치 슬롭을 설정하는 동작은, 상기 터치 다운 지점이 상기 선택 입력 영역에 대응하지 않는 것으로 판단되면, 상기 터치 슬롭을 0(zero)으로 설정하는 동작, 및 상기 터치 다운 지점이 상기 선택 입력 영역에 대응하는 것으로 판단되면, 상기 터치 슬롭을 0(zero)보다 큰 값으로 설정하는 동작을 포함할 수 있다.
일 실시 예에서, 상기 제1 화면에 대한 스크롤의 상태를 제어하는 동작은, 상기 터치 정보를 기반으로 상기 제1 화면에 대한 스크롤이 수행되는 동안 스크롤 구간 별 이동 거리를 확인하는 동작, 및 상기 확인된 이동 거리가 제1 임계값보다 작으면 상기 스크롤의 상태를 변경하도록 제어하는 동작을 포함하며, 상기 스크롤 구간은 상기 지정된 시간에 대응하도록 설정될 수 있다.
일 실시 예에서, 상기 제1 화면에 대한 스크롤의 상태를 제어하는 동작은, 상기 터치 정보를 기반으로 상기 제1 화면에 대한 스크롤이 수행되는 중 상기 이동 거리가 가장 큰 제1 스크롤 구간을 확인하는 동작, 상기 제1 스크롤 구간을 기준으로 현재 감속도를 계산하는 동작, 및 상기 계산된 감속도가 제2 임계값보다 크면 상기 스크롤이 정지하도록 제어하는 동작을 더 포함할 수 있다.
일 실시 예에서, 상기 제1 화면에 대한 스크롤의 상태를 제어하는 동작은, 상기 제1 화면에 대한 스크롤이 수행되는 동안 상기 확인된 이동 거리가 상기 제1 임계값보다 작은 스크롤 구간을 카운트하는 동작, 및 상기 카운트된 스크롤 구간의 수가 제3 임계값을 초과하면 상기 스크롤이 정지하도록 제어하는 동작을 더 포함할 수 있다.
일 실시 예에서, 상기 제1 화면에 대한 스크롤의 상태를 제어하는 동작은, 상기 이동 거리가 상기 제1 임계값보다 작은 스크롤 구간을 카운트하는 동안 상기 제1 임계값보다 큰 스크롤 구간이 제4 임계값을 초과하면, 상기 카운트를 리셋하는 동작을 더 포함할 수 있다.
일 실시 예에서, 상기 방법은, 상기 터치 정보를 기반으로 상기 제1 화면에 대한 스크롤이 수행되는 동안 스크롤 구간 별 이동 속도를 확인하는 동작, 및 상기 확인된 이동 속도를 기반으로 계산된 평균 속도가 지정된 속도 이하이면, 상기 제1 임계값을 지정된 값 미만으로 변경하여 설정하는 동작을 더 포함할 수 있다.
일 실시 예에서, 상기 터치 슬롭을 설정하는 동작은, 상기 제1 터치 이벤트를 감지함에 응답하여, 상기 메모리에 저장된 스크롤 맵을 확인하는 동작, 스크롤 맵을 기반으로 상기 제1 터치 이벤트의 터치 다운(touch down) 지점이 상기 디스플레이 모듈 내 스크롤 영역에 대응하는지 확인하는 동작; 및 상기 터치 다운 지점이 상기 스크롤 영역에 대응하면, 상기 터치 다운 지점의 스크롤 발생 확률을 기반으로 상기 터치 슬롭을 설정하는 동작을 포함하며, 상기 스크롤 맵은, 상기 디스플레이 모듈에 포함된 복수 개의 영역들에 대한 스크롤 발생 확률과 상기 복수 개의 영역들 각각의 스크롤 발생 확률을 기반으로 결정된 스크롤 영역 관련 정보를 포함할 수 있다.
일 실시 예에서, 상기 방법은, 상기 제1 터치 이벤트의 터치 해제를 감지하면, 상기 제1 화면에 대한 스크롤 제어 상태를 확인하는 동작, 및 상기 확인된 제어 상태를 기반으로 상기 스크롤에 관련된 애니메이션 효과의 발생 속도를 결정하고, 상기 제1 터치 이벤트가 종료된 것으로 처리하는 동작을 더 포함할 수 있다.
본 문서에 개시된 다양한 실시 예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시 예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시 예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시 예들로 한정하려는 것이 아니며, 해당 실시 예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C," "A, B 및 C 중 적어도 하나", 및 " A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제1", "제2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제1) 구성요소가 다른(예: 제2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일 실시 예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시 예들은 기기(machine)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, "비일시적"은 저장매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시 예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시 예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.

Claims (15)

  1. 전자 장치에 있어서,
    디스플레이 모듈;
    상기 디스플레이 모듈과 작동적으로 연결된 적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서와 작동적으로 연결된 메모리를 포함하고,
    상기 메모리는, 실행 시에, 상기 적어도 하나의 프로세서가,
    제1 터치 이벤트를 감지함에 응답하여, 스크롤 수행 기준이 되는 터치 슬롭(touch slop)을 설정하고,
    상기 제1 터치 이벤트가 유지되는 동안 지정된 시간 마다 현재 터치 지점에 대응하는 터치 정보를 획득하고,
    상기 획득된 터치 정보를 기반으로 터치 이동 거리가 상기 터치 슬롭을 초과하는 것으로 판단되면, 상기 디스플레이 모듈에 표시된 제1 화면에 대한 스크롤을 개시하고,
    상기 스크롤이 수행되는 동안 획득된 상기 터치 정보를 기반으로 상기 제1 터치 이벤트의 이동 속도, 이동 거리 또는 감속도 중 적어도 하나를 포함하는 스크롤 데이터를 확인하고,
    상기 스크롤 데이터를 기반으로 상기 스크롤의 종료 여부를 판단하여, 상기 제1 화면에 대한 스크롤의 상태를 제어하도록 하는 인스트럭션들을 저장하는, 전자 장치.
  2. 청구항 1에 있어서,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서가,
    상기 제1 터치 이벤트를 감지함에 응답하여, 상기 제1 터치 이벤트의 터치 다운(touch down) 지점이 상기 제1 화면 내 선택 입력 영역에 대응하는지 확인하고,
    상기 확인 결과를 기반으로 상기 터치 슬롭을 설정하도록 하는, 전자 장치.
  3. 청구항 2에 있어서,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서가,
    상기 터치 다운 지점이 상기 선택 입력 영역에 대응하지 않는 것으로 판단되면, 상기 터치 슬롭을 0(zero)으로 설정하고,
    상기 터치 다운 지점이 상기 선택 입력 영역에 대응하는 것으로 판단되면, 상기 터치 슬롭을 0(zero)보다 큰 값으로 설정하도록 하는, 전자 장치.
  4. 청구항 1에 있어서,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서가,
    상기 터치 정보를 기반으로 상기 제1 화면에 대한 스크롤이 수행되는 동안 스크롤 구간 별 이동 거리를 확인하고,
    상기 확인된 이동 거리가 제1 임계값보다 작은 것으로 판단되면 상기 스크롤의 상태를 변경하도록 하며,
    상기 스크롤 구간은 상기 지정된 시간에 대응하도록 설정되는, 전자 장치.
  5. 청구항 4에 있어서,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서가,
    상기 터치 정보를 기반으로 상기 제1 화면에 대한 스크롤이 수행되는 중 상기 이동 거리가 가장 큰 제1 스크롤 구간을 확인하고,
    상기 제1 스크롤 구간을 기준으로 현재 감속도를 계산하고,
    상기 계산된 감속도가 제2 임계값보다 큰 것으로 판단되면 상기 스크롤을 정지시키도록 하는, 전자 장치.
  6. 청구항 4에 있어서,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서가,
    상기 제1 화면에 대한 스크롤이 수행되는 동안 상기 확인된 이동 거리가 상기 제1 임계값보다 작은 스크롤 구간의 수를 카운트하고,
    상기 카운트된 스크롤 구간의 수가 제3 임계값을 초과하는 것으로 판단되면 상기 스크롤을 정지시키도록 하는, 전자 장치.
  7. 청구항 6에 있어서,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서가,
    상기 이동 거리가 상기 제1 임계값보다 작은 스크롤 구간을 카운트하는 동안 상기 제1 임계값보다 큰 스크롤 구간이 제4 임계값을 초과하는 것으로 판단되면, 상기 스크롤 구간의 수를 리셋하도록 하는, 전자 장치.
  8. 청구항 1에 있어서,
    상기 인스트럭션들은, 상기 적어도 하나의 프로세서가,
    상기 제1 터치 이벤트를 감지함에 응답하여, 상기 메모리에 저장된 스크롤 맵을 확인하고,
    스크롤 맵을 기반으로 상기 제1 터치 이벤트의 터치 다운(touch down) 지점이 상기 디스플레이 모듈 내 스크롤 영역에 대응하는지 확인하고,
    상기 터치 다운 지점이 상기 스크롤 영역에 대응하면, 상기 터치 다운 지점의 스크롤 발생 확률을 기반으로 상기 터치 슬롭을 설정하도록 하고,
    상기 스크롤 맵은, 상기 디스플레이 모듈에 포함된 복수 개의 영역들에 대한 스크롤 발생 확률과 상기 복수 개의 영역들 각각의 스크롤 발생 확률을 기반으로 결정된 스크롤 영역 관련 정보를 포함하는, 전자 장치.
  9. 전자 장치의 동작 방법에 있어서,
    제1 터치 이벤트를 감지함에 응답하여, 스크롤 수행 기준이 되는 터치 슬롭(touch slop)을 설정하는 동작;
    상기 제1 터치 이벤트가 유지되는 동안 지정된 시간 마다 현재 터치 지점에 대응하는 터치 정보를 획득하는 동작;
    상기 획득된 터치 정보를 기반으로 터치 이동 거리가 상기 터치 슬롭을 초과하는 것으로 판단되면, 디스플레이 모듈에 표시된 제1 화면에 대한 스크롤을 개시하는 동작;
    상기 스크롤이 수행되는 동안 획득된 상기 터치 정보를 기반으로 상기 제1 터치 이벤트의 이동 속도, 이동 거리 또는 감속도 중 적어도 하나를 포함하는 스크롤 데이터를 확인하는 동작; 및
    상기 스크롤 데이터를 기반으로 상기 스크롤의 종료 여부를 판단하여, 상기 제1 화면에 대한 스크롤의 상태를 제어하는 동작을 포함하는, 방법.
  10. 청구항 9에 있어서,
    상기 터치 슬롭을 설정하는 동작은,
    상기 제1 터치 이벤트를 감지함에 응답하여, 상기 제1 터치 이벤트의 터치 다운(touch down) 지점이 상기 제1 화면 내 선택 입력 영역에 대응하는지 확인하는 동작; 및
    상기 확인 결과를 기반으로 상기 터치 슬롭을 설정하는 동작을 포함하는, 방법.
  11. 청구항 10에 있어서,
    상기 터치 슬롭을 설정하는 동작은,
    상기 터치 다운 지점이 상기 선택 입력 영역에 대응하지 않는 것으로 판단되면, 상기 터치 슬롭을 0(zero)으로 설정하는 동작; 및
    상기 터치 다운 지점이 상기 선택 입력 영역에 대응하는 것으로 판단되면, 상기 터치 슬롭을 0(zero)보다 큰 값으로 설정하는 동작을 포함하는, 방법.
  12. 청구항 9에 있어서,
    상기 제1 화면에 대한 스크롤의 상태를 제어하는 동작은,
    상기 터치 정보를 기반으로 상기 제1 화면에 대한 스크롤이 수행되는 동안 스크롤 구간 별 이동 거리를 확인하는 동작; 및
    상기 확인된 이동 거리가 제1 임계값보다 작은 것으로 판단되면 상기 스크롤의 상태를 변경하는 동작을 포함하며,
    상기 스크롤 구간은 상기 지정된 시간에 대응하도록 설정되는, 방법.
  13. 청구항 12에 있어서,
    상기 제1 화면에 대한 스크롤의 상태를 제어하는 동작은,
    상기 터치 정보를 기반으로 상기 제1 화면에 대한 스크롤이 수행되는 중 상기 이동 거리가 가장 큰 제1 스크롤 구간을 확인하는 동작;
    상기 제1 스크롤 구간을 기준으로 현재 감속도를 계산하는 동작; 및
    상기 계산된 감속도가 제2 임계값보다 큰 것으로 판단되면 상기 스크롤을 정지하는 동작을 더 포함하는, 방법.
  14. 청구항 12에 있어서,
    상기 제1 화면에 대한 스크롤의 상태를 제어하는 동작은,
    상기 제1 화면에 대한 스크롤이 수행되는 동안 상기 확인된 이동 거리가 상기 제1 임계값보다 작은 스크롤 구간의 수를 카운트하는 동작;
    상기 카운트된 스크롤 구간의 수가 제3 임계값을 초과하는 것으로 판단되면 상기 스크롤을 정지하는 동작; 및
    상기 이동 거리가 상기 제1 임계값보다 작은 스크롤 구간을 카운트하는 동안 상기 제1 임계값보다 큰 스크롤 구간이 제4 임계값을 초과하는 것으로 판단되면, 상기 스크롤 구간의 수를 리셋하는 동작을 더 포함하는, 방법.
  15. 청구항 9에 있어서,
    상기 터치 슬롭을 설정하는 동작은,
    상기 제1 터치 이벤트를 감지함에 응답하여, 스크롤 맵을 확인하는 동작;
    스크롤 맵을 기반으로 상기 제1 터치 이벤트의 터치 다운(touch down) 지점이 상기 디스플레이 모듈 내 스크롤 영역에 대응하는지 확인하는 동작; 및
    상기 터치 다운 지점이 상기 스크롤 영역에 대응하는 것으로 판단되면, 상기 터치 다운 지점의 스크롤 발생 확률을 기반으로 상기 터치 슬롭을 설정하는 동작을 포함하며,
    상기 스크롤 맵은, 상기 디스플레이 모듈에 포함된 복수 개의 영역들에 대한 스크롤 발생 확률과 상기 복수 개의 영역들 각각의 스크롤 발생 확률을 기반으로 결정된 스크롤 영역 관련 정보를 포함하는, 방법.
PCT/KR2022/017946 2022-01-12 2022-11-15 터치 입력을 처리하는 방법 및 그 전자 장치 WO2023136443A1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202280088395.8A CN118525261A (zh) 2022-01-12 2022-11-15 用于处理触摸输入的方法和电子设备
EP22920773.3A EP4411520A1 (en) 2022-01-12 2022-11-15 Method and electronic device for processing touch input
US18/120,925 US20230221853A1 (en) 2022-01-12 2023-03-13 Method for processing touch input and an electronic device thereof

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20220004508 2022-01-12
KR10-2022-0004508 2022-01-12
KR1020220032803A KR20230109050A (ko) 2022-01-12 2022-03-16 터치 입력을 처리하는 방법 및 그 전자 장치
KR10-2022-0032803 2022-03-16

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/120,925 Continuation US20230221853A1 (en) 2022-01-12 2023-03-13 Method for processing touch input and an electronic device thereof

Publications (1)

Publication Number Publication Date
WO2023136443A1 true WO2023136443A1 (ko) 2023-07-20

Family

ID=87279281

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/017946 WO2023136443A1 (ko) 2022-01-12 2022-11-15 터치 입력을 처리하는 방법 및 그 전자 장치

Country Status (1)

Country Link
WO (1) WO2023136443A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110011388A (ko) * 2009-07-28 2011-02-08 삼성전자주식회사 데이터 스크롤 방법 및 장치
JP2014119697A (ja) * 2012-12-19 2014-06-30 Panasonic Corp 画像処理装置、および画像処理方法
JP2016197284A (ja) * 2015-04-02 2016-11-24 富士通株式会社 電子機器、制御方法および制御プログラム
JP2019074814A (ja) * 2017-10-12 2019-05-16 富士通コネクテッドテクノロジーズ株式会社 表示装置、表示方法および表示プログラム
JP6635883B2 (ja) * 2016-06-30 2020-01-29 シャープ株式会社 表示制御装置、電子機器、プログラムおよび表示制御方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110011388A (ko) * 2009-07-28 2011-02-08 삼성전자주식회사 데이터 스크롤 방법 및 장치
JP2014119697A (ja) * 2012-12-19 2014-06-30 Panasonic Corp 画像処理装置、および画像処理方法
JP2016197284A (ja) * 2015-04-02 2016-11-24 富士通株式会社 電子機器、制御方法および制御プログラム
JP6635883B2 (ja) * 2016-06-30 2020-01-29 シャープ株式会社 表示制御装置、電子機器、プログラムおよび表示制御方法
JP2019074814A (ja) * 2017-10-12 2019-05-16 富士通コネクテッドテクノロジーズ株式会社 表示装置、表示方法および表示プログラム

Similar Documents

Publication Publication Date Title
WO2022085940A1 (ko) 웨어러블 표시 장치에 복수의 오브젝트들 표시 제어 방법 및 장치
WO2020032512A1 (en) Electronic device and method for displaying affordance for providing charging of battery of external device through display
AU2018321518B2 (en) Method for determining input detection region corresponding to user interface and electronic device thereof
WO2022014836A1 (ko) 가상 객체들의 밝기를 다르게 표시하는 방법 및 장치
WO2023136443A1 (ko) 터치 입력을 처리하는 방법 및 그 전자 장치
WO2023008854A1 (ko) 디스플레이 내장형 광학 센서를 포함하는 전자 장치
WO2022197076A1 (ko) 전자 장치 및 오타 보정 방법
WO2022030998A1 (ko) 디스플레이를 포함하는 전자 장치 및 그의 동작 방법
WO2022154264A1 (ko) 전자 장치 및 전자 장치의 동작 방법
WO2022086071A1 (ko) 전자 펜 장치의 동작을 제어하기 위한 전자 장치, 전자 장치에서의 동작 방법 및 비 일시적 저장 매체
WO2022065845A1 (ko) 입력 데이터 처리 방법 및 이를 지원하는 전자 장치
WO2020218881A1 (en) Electronic device including display device including touch sensor
WO2018225974A1 (ko) 터치의 압력에 응답하여 지정된 동작을 수행하는 전자 장치 및 방법
WO2024049042A1 (ko) 제스쳐의 궤적을 변경하기 위한 전자 장치, 방법, 및 컴퓨터 판독 가능 저장 매체
WO2023033301A1 (ko) 가상 키보드를 통하여 사용자 입력을 획득하는 전자 장치와 이의 동작 방법
WO2022149908A1 (ko) 전자 장치 및 전자 장치에서 디스플레이 동작 제어 방법
WO2022119084A1 (ko) 확장 가능한 디스플레이를 포함하는 전자 장치 및 이의 동작 방법
WO2024034812A1 (ko) 획을 입력하기 위한 제스쳐를 이용하여 획에 대응하는 라인을 식별하기 위한 전자 장치 및 그 방법
WO2021201603A1 (ko) 전자 장치 및 이의 제어 방법
WO2023287057A1 (ko) 주변 장치로부터 입력을 수신하였을 때 화면을 빠르게 업데이트하는 전자 장치
WO2023146095A1 (ko) 멀티 윈도우 화면을 제어하는 방법 및 이를 지원하는 전자 장치
WO2023043118A1 (ko) 전자 장치 및 전자 장치의 터치 인식 방법
WO2023146142A1 (ko) 전자 장치 및 전자 펜 알림 및 연결 방법
WO2022177216A1 (ko) 포인터의 이동을 제어하기 위한 전자 장치 및 그 동작 방법
WO2024034774A1 (ko) 복수의 디스플레이들을 포함하는 전자 장치 및 복수의 디스플레이들의 화질 편차를 줄이는 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22920773

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2022920773

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2022920773

Country of ref document: EP

Effective date: 20240501

WWE Wipo information: entry into national phase

Ref document number: 202427039622

Country of ref document: IN

NENP Non-entry into the national phase

Ref country code: DE