KR101296052B1 - 애니메이션 - Google Patents

애니메이션 Download PDF

Info

Publication number
KR101296052B1
KR101296052B1 KR1020127016846A KR20127016846A KR101296052B1 KR 101296052 B1 KR101296052 B1 KR 101296052B1 KR 1020127016846 A KR1020127016846 A KR 1020127016846A KR 20127016846 A KR20127016846 A KR 20127016846A KR 101296052 B1 KR101296052 B1 KR 101296052B1
Authority
KR
South Korea
Prior art keywords
animation
animations
display
different kinds
transform
Prior art date
Application number
KR1020127016846A
Other languages
English (en)
Other versions
KR20120091403A (ko
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
Application filed by 애플 인크. filed Critical 애플 인크.
Publication of KR20120091403A publication Critical patent/KR20120091403A/ko
Application granted granted Critical
Publication of KR101296052B1 publication Critical patent/KR101296052B1/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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • 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]
    • 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/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • 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
    • 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
    • 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
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]

Abstract

본 발명의 적어도 소정 실시예들은 장치의 디스플레이 상에 표시된 디스플레이 영역, 윈도우들 또는 뷰들을 애니메이팅하기 위한 방법을 포함한다. 방법은 적어도 2개의 애니메이션을 개시하는 단계를 포함한다. 방법은 각각의 애니메이션의 진행을 결정하는 단계를 더 포함한다. 방법은 단일 타이머에 기초하여 각각의 애니메이션을 완료하는 단계를 더 포함한다.

Description

애니메이션{ANIMATIONS}
본 발명은 애니메이션들을 제공하는 애플리케이션 프로그래밍 인터페이스에 관한 것이다.
<컴퓨터 프로그램 리스팅>
본 특허 문헌의 명세의 일부는 저작권 보호를 받는 내용을 포함한다. 저작권 소유자는 특허 문헌 또는 특허 명세가 특허 상표청의 특허 파일 또는 레코드로 공개됨에 따라 특허 문헌 또는 특허 명세의 누군가에 의한 복사 재생에는 이의가 없으나, 그 외에는 모든 저작권을 보유한다.
본 출원인은 첨부된 부록 A로서 포함되는 컴퓨터 프로그램 리스팅을 본 명세서와 함께 제출한다.
API는 컴퓨터 시스템 또는 프로그램 라이브러리가 소프트웨어 애플리케이션으로부터의 서비스들에 대한 요청들을 지원하기 위해 제공하는 소스 코드 인터페이스이다. API는 데이터가 메모리 내에 어떻게 배치되는지에 대한 명시적인 저레벨 설명서가 아니라, 애플리케이션이 구축될 때 해석 또는 컴파일될 수 있는 프로그래밍 언어로 상술된다. API에 의해 설명되는 기능을 제공하는 소프트웨어를 API의 구현이라 한다.
전자 장치, 컴퓨팅 시스템, 휴대용 장치 및 핸드헬드 장치와 같은 다양한 장치는 소프트웨어 애플리케이션들을 갖는다. API는 장치의 사용자에게 소정의 특징들 및 동작들을 제공하기 위하여 소프트웨어 애플리케이션들과 사용자 인터페이스 소프트웨어 사이에서 인터페이스한다. 사용자는 장치의 디스플레이에 대한 스크롤링, 선택, 제스처링 및 애니메이팅 동작들과 같은 소정의 동작들을 원할 수 있다.
스크롤링은 텍스트, 그림 또는 이미지와 같은 콘텐츠의 지향성(예를 들어, 수평 또는 수직) 프리젠테이션을 스크린 또는 디스플레이 윈도우를 가로질러 슬라이딩하는 행위이다. 통상적인 그래픽 사용자 인터페이스에서, 스크롤링은 스크롤 바의 도움으로 또는 키보드 단축키들, 종종 화살표 키들을 이용하여 행해진다. 제스처링은 둘 이상의 입력 포인트를 갖는 일 타입의 사용자 입력이다. 애니메이팅 동작들은 주어진 기간 내에 콘텐츠를 변경하는 것을 포함한다.
다양한 타입의 장치들은 장치들의 사용의 편의를 제한하는 제한된 디스플레이 크기, 사용자 인터페이스, 소프트웨어, API 인터페이스 및/또는 처리 능력을 가질 수 있다. 장치들의 사용자 인터페이스들은 요청된 기능 및 특징들을 제공하기 위해 API들을 구현한다. 이러한 사용자 인터페이스들은 다양한 타입의 사용자 입력들을 해석하고 사용자 입력들과 관련된 의도된 기능을 제공하는 데 어려움을 가질 수 있다.
본 발명의 적어도 소정의 실시예들은 사용자 인터페이스 소프트웨어가 소프트웨어 애플리케이션과 상호작용하는 환경 내에 하나 이상의 애플리케이션 프로그래밍 인터페이스를 포함한다. 다양한 함수 호출들 또는 메시지들이 애플리케이션 프로그래밍 인터페이스들을 통해 사용자 인터페이스 소프트웨어와 소프트웨어 애플리케이션 사이에서 전송된다. 예시적인 애플리케이션 프로그래밍 인터페이스들은 장치에 대한 스크롤링, 제스처링 및 애니메이팅 동작들을 구현하기 위한 함수 호출들을 전송한다.
본 발명의 적어도 소정의 실시예들은 장치의 디스플레이 상에 표시된 디스플레이 영역, 윈도우들 또는 뷰들을 애니메이팅하기 위한 방법을 포함한다. 방법은 적어도 2개의 애니메이션을 개시하는 단계를 포함한다. 방법은 각각의 애니메이션의 진행을 결정하는 단계를 더 포함한다. 방법은 단일 타이머에 기초하여 각각의 애니메이션을 완료하는 단계를 더 포함한다.
본 발명의 적어도 소정의 실시예들은 사용자 인터페이스 소프트웨어가 소프트웨어 애플리케이션과 상호작용하는 환경을 포함한다. 이러한 환경에서 애플리케이션 프로그래밍 인터페이스(API)를 통해 조작하기 위한 방법은 러버밴드(rubberband) 호출을 전송하는 단계를 포함한다. 디스플레이 영역 내의 스크롤된 영역의 러버밴딩은 스크롤된 영역이 디스플레이 에지를 초과할 때 사전 결정된 최대 변위만큼 발생한다. 방법은 디스플레이의 적어도 하나의 에지(예를 들어, 상하 에지들, 좌우 에지들)에 대한 변위 값들을 설정하기 위한 에지 러버밴드 호출을 전송하는 단계를 더 포함한다.
본 발명의 적어도 소정의 실시예들은 장치의 디스플레이에 대한 제스처 동작들을 포함한다. 제스처 동작들은 둘 이상의 입력 포인트를 갖는 사용자 입력에 응답하여 줌인 또는 줌아웃과 같은 스케일링 변환을 수행하는 동작을 포함한다. 제스처 동작들은 또한 둘 이상의 입력 포인트를 갖는 사용자 입력에 응답하여 이미지 또는 뷰를 회전시키기 위한 회전 변환을 수행하는 동작을 포함한다.
본 발명의 적어도 소정 실시예들은 장치의 디스플레이에 대한 애니메이션을 수행하기 위한 방법을 포함한다. 방법은 적어도 하나의 애니메이션을 개시하는 단계를 포함한다. 방법은 각각의 애니메이션의 진행을 결정하는 단계를 더 포함한다. 방법은 단일 타이머에 기초하여 각각의 애니메이션을 완료하는 단계를 더 포함한다. 단일 타이머는 디스플레이 하드웨어의 리드로우(redraw) 인터벌에 기초할 수 있다.
위의 방법들 중 하나 이상을 수행하는 다양한 장치들, 및 처리 시스템에 의해 실행될 때 처리 시스템이 그러한 방법들을 수행하게 하는 기계 판독가능 매체들도 설명된다.
다른 방법들, 장치들 및 기계 판독가능 매체들도 설명된다.
본 발명의 적어도 소정의 실시예들은 사용자 인터페이스 소프트웨어가 소프트웨어 애플리케이션과 상호작용하는 환경 내에 하나 이상의 애플리케이션 프로그래밍 인터페이스를 포함한다. 본 발명의 적어도 소정의 실시예들은 장치의 디스플레이 상에 표시된 디스플레이 영역, 윈도우들 또는 뷰들을 애니메이팅하기 위한 방법을 포함한다. 본 발명의 적어도 소정의 실시예들은 사용자 인터페이스 소프트웨어가 소프트웨어 애플리케이션과 상호작용하는 환경을 포함한다. 본 발명의 적어도 소정의 실시예들은 장치의 디스플레이에 대한 제스처 동작들을 포함한다. 본 발명의 적어도 소정 실시예들은 장치의 디스플레이에 대한 애니메이션을 수행하기 위한 방법을 포함한다.
도 1은 데이터 처리 장치의 사용자 입력에 응답하기 위한 방법의 흐름도이다.
도 2는 본 발명의 소정의 가르침에 따른 흐름도 형태의 애플리케이션 프로그래밍 인터페이스의 상세를 나타내는 도면이다.
도 3은 본 발명의 소정의 가르침에 따른 흐름도 형태의 애플리케이션 프로그래밍 인터페이스의 상세를 나타내는 도면이다.
도 4는 터치 감지 디스플레이(408)를 구비한 휴대용 전자 장치(400)의 사용자 인터페이스의 일 실시예를 나타내는 개략도이다.
도 5a-5c는 터치 감지 디스플레이를 구비한 휴대용 전자 장치(400)의 사용자 인터페이스의 적어도 일부 실시예를 나타내는 도면이다.
도 6a-6d는 일부 실시예에 따른, 항목들의 리스트를 리스트의 말단까지 스크롤링하는 것을 나타내는 도면으로서, 이 시점에서 말단을 지난 영역이 표시된 후, 리스트는 말단을 지난 영역이 더 이상 표시되지 않을 때까지 반대 방향으로 스크롤링된다.
도 7은 본 발명의 소정 가르침에 따른 흐름도 형태의 애플리케이션 프로그래밍 인터페이스의 상세를 나타내는 도면이다.
도 8은 본 발명의 소정 가르침에 따른, 수평 또는 수직 방향으로 장치의 디스플레이의 스크롤을 록킹(locking)하기 위한 제1 및 제2 스크롤 각도들을 나타내는 도면이다.
도 9는 본 발명의 소정 가르침에 따른 흐름도 형태의 애플리케이션 프로그래밍 인터페이스의 상세를 나타내는 도면이다.
도 10은 본 발명의 소정 가르침에 따른 흐름도 형태의 애플리케이션 프로그래밍 인터페이스의 상세를 나타내는 도면이다.
도 11은 본 발명의 소정 가르침에 따른 흐름도 형태의 애플리케이션 프로그래밍 인터페이스의 상세를 나타내는 도면이다.
도 12는 본 발명의 소정 가르침에 따른 흐름도 형태의 애플리케이션 프로그래밍 인터페이스의 상세를 나타내는 도면이다.
도 13은 본 발명의 소정 가르침에 따른 흐름도 형태의 애플리케이션 프로그래밍 인터페이스의 상세를 나타내는 도면이다.
도 14는 본 발명의 소정 가르침에 따른 흐름도 형태의 애플리케이션 프로그래밍 인터페이스의 상세를 나타내는 도면이다.
도 15는 뷰의 스케일링 변환을 갖는 장치의 디스플레이를 나타내는 도면이다.
도 16a 및 16b는 제1 및 제2 스케일링 팩터를 갖는 뷰를 구비한 장치의 디스플레이를 나타내는 도면이다.
도 17은 본 발명의 소정 가르침에 따른 흐름도 형태의 애플리케이션 프로그래밍 인터페이스의 상세를 나타내는 도면이다.
도 18은 본 발명의 소정 가르침에 따른 흐름도 형태의 애플리케이션 프로그래밍 인터페이스의 상세를 나타내는 도면이다.
도 19는 장치의 디스플레이 상에 표시된 뷰들을 애니메이팅하기 위한 방법의 흐름도이다.
도 20은 장치의 디스플레이 상에 표시된 뷰들을 애니메이팅하기 위한 방법의 흐름도이다.
도 21은 본 발명의 소정 가르침에 따른 흐름도 형태의 애플리케이션 프로그래밍 인터페이스의 상세를 나타내는 도면이다.
도 22a 및 22b는 장치의 디스플레이의 윈도우들의 리사이징(resizing)을 동기화하는 것을 나타내는 도면이다.
도 23은 데이터 처리 장치의 디스플레이 상에 표시된 애플리케이션의 뷰의 소유권을 바꾸기 위한 방법을 나타내는 도면이다.
도 24는 장치의 디스플레이 상에 표시된 애플리케이션의 뷰의 메모리 관리를 위한 방법을 나타내는 도면이다.
도 25a 및 25b는 계층이 뷰와 연관되는 계층 체계(hierarchy of layers)를 갖는 데이터 구조를 나타내는 도면이다.
도 26은 장치 상에 표시하기 위한 사용자 인터페이스의 미디어 및 비 미디어 콘텐츠를 합성하기 위한 방법을 나타내는 도면이다.
도 27은 계층 체계를 갖는 데이터 구조 또는 계층 트리를 나타내는 도면이다.
도 28은 본 발명의 일 실시예에 따른 장치의 사시도이다.
도 29는 본 발명의 일 실시예에 따른 장치의 사시도이다.
도 30은 본 발명의 일 실시예에 따른 무선 장치의 사시도이다.
도 31은 본 발명의 실시예들이 구현될 수 있는 시스템의 블록도이다.
도 32는 본 발명의 일 실시예에 따른 장치의 다른 예를 나타내는 도면이다.
도 33a는 본 발명의 일 실시예에 따른 제1 구성(예를 들어, 랩탑 구성)의 장치의 사시도이다.
도 33b는 본 발명의 일 실시예에 따른 제2 구성(예를 들어, 전이 구성)의 도 33a의 장치의 사시도이다.
도 33c는 본 발명의 일 실시예에 따른 제3 구성(예를 들어, 타블렛 구성)의 도 33a의 장치의 사시도이다.
도 34는 본 발명의 소정 가르침에 따른 흐름도 형태의 애플리케이션 프로그래밍 인터페이스의 상세를 나타내는 도면이다.
본 발명은 아래의 첨부 도면들을 참조하여 예시적으로 설명된다.
본 발명의 다양한 실시예들 및 양태들은 후술하는 상세들을 참조하여 설명되며, 첨부 도면들은 다양한 실시예를 도시한다. 아래의 설명 및 도면들은 본 발명을 예시하는 것이며, 본 발명을 한정하는 것으로 해석되지 않아야 한다. 본 발명의 다양한 실시예의 충분한 이해를 제공하기 위해 다수의 특정 상세들이 설명된다. 그러나, 소정 사례들에서는, 본 발명의 실시예들의 간결한 설명을 제공하기 위해 공지 또는 종래의 상세들은 설명되지 않는다.
이어지는 상세한 설명의 일부는 컴퓨터 메모리 내에 저장된 데이터에 관한 연산들을 포함하는 알고리즘들과 관련하여 제공된다. 일반적으로, 알고리즘은 원하는 결과를 유도하는 연산들의 일관된 시퀀스이다. 통상적으로, 연산들은 물리적인 양들의 물리적 조작을 필요로 하거나 수반한다. 일반적으로, 반드시는 아니지만, 이러한 양들은 저장, 전송, 결합, 비교, 아니면 조작될 수 있는 전기 또는 자기 신호들의 형태를 갖는다. 때때로, 주로 일반적인 사용의 이유로, 이러한 신호들을 비트, 값, 요소, 심벌, 문자, 용어, 숫자 등으로 지칭하는 것이 편리한 것으로 입증되었다.
그러나, 이들 및 유사한 용어들 모두는 적절한 물리적 양들과 연관되어야 하며, 단지 이러한 양들에 부여되는 편리한 라벨들이라는 것을 기억해야 한다. 이어지는 설명으로부터 명백하듯이 구체적으로 달리 언급되지 않는 한, 명세서 전반에서 "처리" 또는 "컴퓨팅" 또는 "계산" 또는 "결정" 또는 "표시" 등과 같은 용어들을 이용하는 설명들은 시스템의 레지스터들 및 메모리들 내에 물리(전자) 양들로서 표현된 데이터를 시스템의 메모리들 또는 레지스터들 또는 다른 그러한 정보 저장, 전송 또는 표시 장치들 내에 물리 양들로서 유사하게 표현되는 다른 데이터로 조작, 변환하는 데이터 처리 시스템 또는 유사한 전자 장치의 액션 또는 프로세스들을 지칭할 수 있다는 것을 인식한다.
본 발명은 여기에 설명되는 동작들 중 하나 이상을 수행하기 위한 장치와 관련될 수 있다. 이 장치는 필요한 목적들을 위해 특별히 구성되거나, 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 범용 컴퓨터를 포함할 수 있다. 그러한 컴퓨터 프로그램은, 플로피 디스크, 광 디스크, CD-ROM 및 광자기 디스크를 포함하는 임의 타입의 디스크, 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 소거 가능하고 프로그램 가능한 ROM(EPROM), 전기적으로 소거 가능하고 프로그램 가능한 ROM(EEPROM), 플래시 메모리, 자기 또는 광학 카드, 또는 전자 명령어들을 저장하는 데 적합한 임의 타입의 매체를 포함하지만 이에 한정되지 않고, 버스에 각자 결합되는 기계(예를 들어, 컴퓨터) 판독가능 저장 매체에 저장될 수 있다.
기계 판독가능 매체는 기계(예를 들어, 컴퓨터)에 의해 판독가능한 형태로 정보를 저장 또는 전송하기 위한 임의의 메커니즘을 포함한다. 예를 들어, 기계 판독가능 매체는 ROM, RAM, 자기 디스크 저장 매체, 광학 저장 매체, 플래시 메모리 장치, 전기, 광학, 음향 또는 다른 형태의 전파 신호(예컨대, 반송파, 적외선 신호, 디지털 신호 등) 등을 포함한다.
본 발명의 적어도 소정의 실시예들은 사용자 인터페이스 소프트웨어가 소프트웨어 애플리케이션과 상호작용하는 환경 내에 하나 이상의 애플리케이션 프로그래밍 인터페이스를 포함한다. 다양한 함수 호출들 또는 메시지들이 애플리케이션 프로그래밍 인터페이스들을 통해 사용자 인터페이스 소프트웨어와 소프트웨어 애플리케이션 사이에서 전송된다. 함수 호출들 또는 메시지들의 전송은 함수 호출들 또는 메시지들의 발행, 개시, 소환(invoke) 또는 수신을 포함할 수 있다. 예시적인 애플리케이션 프로그래밍 인터페이스들은 디스플레이 영역을 갖는 장치에 대한 스크롤링, 제스처링 및 애니메이팅 동작들을 구현하기 위한 함수 호출들을 전송한다. 또한, API가 파라미터들, 변수들 또는 포인터들을 갖는 함수들을 구현할 수 있다. API가 개시되는 바와 같은 파라미터들 또는 파라미터들의 다른 조합들을 수신할 수 있다. 개시되는 API들에 더하여, 다른 API들이 개시되는 API들과 유사한 기능을 개별적으로 또는 공동으로 수행할 수 있다.
디스플레이 영역은 윈도우의 형태이다. 윈도우는 경계를 갖지 않을 수 있고 디스플레이의 전체 디스플레이 영역 또는 구역일 수 있는 디스플레이 영역이다. 일부 실시예들에서, 디스플레이 영역은 적어도 하나의 윈도우 및/또는 적어도 하나의 뷰(예를 들어, 웹, 텍스트 또는 이미지 콘텐츠)를 가질 수 있다. 윈도우는 적어도 하나의 뷰를 가질 수 있다. 개시되는 방법들, 시스템들 및 장치들은 디스플레이 영역들, 윈도우들 및/또는 뷰들을 이용하여 구현될 수 있다.
본 발명의 적어도 소정 실시예들은 장치의 디스플레이를 스크롤링하기 위한 스크롤링 동작들을 포함한다. 스크롤링 동작들은 스크롤이 완료된 때 스크롤된 영역을 스크롤의 반대 방향으로 바운싱(bouncing)하는 동작, 스크롤된 영역이 디스플레이 에지를 초과할 때 스크롤된 영역을 사전 결정된 최대 변위만큼 러버밴딩하는 동작, 및 스크롤을 수평 또는 수직 방향으로 록킹하는 스크롤링 각도를 설정하는 동작을 포함한다.
본 발명의 적어도 소정의 실시예들은 장치의 디스플레이에 대한 제스처 동작들을 포함한다. 제스처 동작들은 둘 이상의 입력 포인트를 갖는 사용자 입력에 응답하여 줌인 또는 줌아웃과 같은 스케일링 변환을 수행하는 동작을 포함한다. 제스처 동작들은 또한 둘 이상의 입력 포인트를 갖는 사용자 입력에 응답하여 이미지 또는 뷰를 회전시키기 위한 회전 변환을 수행하는 동작을 포함한다.
본 발명의 적어도 소정 실시예들은 장치의 디스플레이에 대한 애니메이션을 수행하기 위한 방법을 포함한다. 방법은 적어도 하나의 애니메이션을 개시하는 단계를 포함한다. 방법은 각각의 애니메이션의 진행을 결정하는 단계를 더 포함한다. 방법은 단일 타이머에 기초하여 각각의 애니메이션을 완료하는 단계를 더 포함한다. 단일 타이머는 디스플레이 하드웨어의 리드로우(redraw) 인터벌에 기초할 수 있다.
본 발명의 적어도 소정의 실시예들은 미디어를 제시하기 위한 미디어 처리 시스템, 미디어를 저장하기 위한 저장 장치, 및 안테나 시스템 및 미디어 처리 시스템에 결합되는 무선 주파수(RF) 송수신기(예를 들어, 셀룰러 전화용 RF 송수신기)를 포함할 수 있는 휴대용 음악 및/또는 비디오 미디어 재생기와 같은 디지털 미디어 재생기의 일부일 수 있다. 소정 실시예들에서는, 원격 저장 장치에 저장된 미디어들이 RF 송수신기를 통해 미디어 재생기로 전송될 수 있다. 미디어들은 예를 들어 음악 또는 기타 오디오, 정지 사진들 또는 동영상들 중 하나 이상일 수 있다.
휴대용 미디어 재생기는 캘리포니아주, 쿠퍼티노의 애플 컴퓨터사의 iPod(등록상표) 또는 iPod Nano(등록상표) 미디어 재생기 상의 클릭 휠 입력 장치, 터치 스크린 입력 장치, 푸시버튼 장치, 이동 가능 포인팅 입력 장치 또는 다른 입력 장치와 같은 미디어 선택 장치를 포함할 수 있다. 미디어 선택 장치는 저장 장치 및/또는 원격 저장 장치 상에 저장된 미디어들을 선택하는 데 사용될 수 있다. 휴대용 미디어 재생기는 적어도 소정의 실시예들에서 디스플레이 장치를 통해 선택되고 스피커 또는 이어폰(들)을 통해 또는 디스플레이 장치 상에 또는 디스플레이 장치 및 스피커 또는 이어폰(들) 양자 상에서 제시되는 미디어들의 타이틀들 또는 다른 지시자들을 표시하기 위해 미디어 처리 시스템에 결합되는 디스플레이 장치를 포함할 수 있다. 일부 실시예들에서, 디스플레이 장치 및 입력 장치는 통합되는 반면, 다른 실시예들에서 디스플레이 장치 및 입력 장치는 개별 장치들이다. 휴대용 미디어 재생기의 예들은 본 명세서에 참고로 포함된, 미국 특허 출원 번호 2003/0095096 및 2004/0224638로 공개된 "Automated Response to and Sensing of User Activity in Devices"라는 제목의 미국 특허 출원 번호 11/586,862에 설명되어 있다.
여기에 설명되는 본 발명의 실시예들은 예를 들어 엔터테인먼트 시스템 또는 개인 휴대 단말기(PDA), 또는 범용 컴퓨터 시스템, 또는 특수 목적 컴퓨터 시스템, 또는 다른 장치에 내장된 장치, 또는 미디어 재생기를 포함하지 않는 셀룰러 전화, 또는 멀티 터치 타블렛 장치, 또는 다른 멀티 터치 장치, 또는 이러한 장치들의 양태들 또는 기능들을 결합한 장치(예를 들어, 하나의 장치 내에 PDA, 엔터테인먼트 시스템 및 셀룰러 전화와 결합된 iPod(등록상표)와 같은 미디어 재생기)와 같은 다른 타입의 데이터 처리 시스템들의 일부일 수 있다. 본 개시에서, 전자 장치들 및 소비자 장치들은 장치들의 타입들이다.
도 1은 장치의 사용자 입력에 응답하기 위한 방법의 흐름도이다. 방법(100)은 블록 102에서 사용자 입력을 수신하는 단계를 포함한다. 사용자 입력은 입력 키, 버튼, 휠, 터치 또는 장치와 상호작용하기 위한 다른 수단들의 형태일 수 있다. 방법(100)은 블록 104에서 사용자 입력에 응답하여 이벤트 객체를 생성하는 단계를 더 포함한다. 방법(100)은 블록 106에서 이벤트 객체가 스크롤 또는 제스처 동작을 소환하는지를 결정하는 단계를 더 포함한다. 예를 들어, 장치의 디스플레이를 가로질러 소정 거리를 드래그하는 단일 터치는 스크롤 동작으로 해석될 수 있다. 일 실시예에서, 디스플레이에 대한 둘 이상의 손가락 터치는 제스처 동작으로 해석될 수 있다. 소정 실시예들에서, 이벤트 객체가 스크롤 또는 제스처 동작을 소환하는지를 결정하는 단계는 소정 기간 동안의 드래그 사용자 입력의 수신에 기초한다. 방법(100)은 블록 108에서 스크롤 또는 제스처 동작의 소환에 기초하여 적어도 하나의 스크롤 또는 제스처 호출을 발행하는 단계를 더 포함한다. 방법(100)은 블록 110에서, 적어도 하나의 스크롤 호출이 발행된 경우에, 스크롤의 양에 기초하여 이벤트 객체와 연관되는 뷰(예를 들어, 웹, 텍스트 또는 이미지 콘텐츠)를 갖는 윈도우를 스크롤링함으로써 적어도 하나의 스크롤 호출에 응답하는 단계를 더 포함하는데, 스크롤은 사용자 입력과 관련되는 사전 결정된 위치에서 정지된다. 예를 들어, 입력은 장치의 디스플레이 상의 소정 위치에서 종료될 수 있다. 스크롤링은 사용자로부터 수신된 최종 입력과 관련되는 사전 결정된 위치에 도달할 때까지 계속될 수 있다. 방법(100)은 블록 112에서, 적어도 하나의 제스처 호출이 발행된 경우에, 사용자 입력의 형태로 복수의 입력 포인트를 수신하는 것에 기초하여 이벤트 객체와 연관된 뷰를 변경함으로써 적어도 하나의 제스처 호출에 응답하는 단계를 더 포함한다.
본 발명의 소정 실시예들에서, 스크롤 동작들은 디스플레이의 콘텐츠 에지에 스크롤 지시자들을 첨부하는 동작을 포함한다. 대안으로, 스크롤 지시자들은 디스플레이 에지에 첨부될 수 있다. 일부 실시예들에서, 마우스/손가락 다운(down) 형태의 사용자 입력은 스크롤 지시자들이 디스플레이 에지, 콘텐츠 에지, 또는 스크롤된 영역의 윈도우 에지 상에 표시되게 한다. 이어서, 마우스/손가락 업(up)이 검출되는 경우, 스크롤 지시자들은 디스플레이 영역, 콘텐츠 에지, 또는 스크롤된 영역의 윈도우 에지로부터 서서히 사라진다.
본 발명의 소정 실시예들에서, 제스처 동작들은 적어도 하나의 제스처 호출이 발행된 경우에 사용자 입력 형태로 복수의 입력 포인트를 수신하는 것에 기초하여 이벤트 객체와 연관된 뷰를 회전시킴으로써 적어도 하나의 제스처 호출에 응답하는 동작을 포함한다. 제스처 동작들은 사용자 입력의 수신에 기초하여 줌인 또는 줌아웃함으로써 이벤트 객체와 연관된 뷰를 스케일링하는 동작도 포함할 수 있다.
일부 실시예들에서, 장치는 다수의 뷰 또는 윈도우를 갖는 디스플레이 영역을 포함한다. 각각의 윈도우는 수퍼뷰들 및 서브뷰들을 포함하는 다수의 뷰를 구비할 수 있다. 마우스 업, 마우스 다운 또는 드래그 등의 형태의 사용자 입력에 의해 어떠한 윈도우, 뷰, 수퍼뷰 또는 서브뷰가 접촉되는지를 결정하는 것이 필요하다. API는 이러한 결정을 행하기 위한 다양한 모드를 설정할 수 있다. 일 실시예에서, 패스 모드는 마우스 다운, 마우스 업 및 드래그 입력들을 가장 가까운 서브뷰로 전송한다. 다른 실시예에서, 드래그 상의 인터셉트 모드(intercept on drag mode)는 드래그 입력을 수퍼뷰로 전송하는 반면, 마우스 업 및 다운 입력들은 서브뷰로 전송된다. 또 다른 실시예에서, 인터셉트 모드는 모든 드래그, 마우스 업 및 마우스 다운 입력들을 수퍼뷰로 전송한다. 수퍼뷰는 뷰 소프트웨어의 서브클래스로서 동작하는 스크롤러 소프트웨어일 수 있다. 서브뷰는 사용자 인터페이스 소프트웨어의 서브클래스로서 동작하는 뷰 소프트웨어일 수 있다.
도 2는 본 발명의 소정 가르침에 따른 흐름도 형태의 애플리케이션 프로그래밍 인터페이스의 상세를 나타낸다. 애플리케이션 프로그래밍 인터페이스는 바운스 동작을 제공하기 위해 사용자 인터페이스 소프트웨어가 소프트웨어 애플리케이션과 상호작용하는 환경 내에서 동작한다. 바운스 동작을 제공하기 위한 방법(200)은 블록 202에서 바운스 설정 호출을 전송하는 단계를 포함한다. 방법(200)은 블록 204에서 최대 및 최소 바운스 값들 중 적어도 하나를 설정하는 단계를 더 포함한다. 최소 및 최대 바운스 값들은 사용자 입력을 수신한 윈도우의 적어도 하나의 에지와 연관될 수 있다. 방법(200)은 블록 206에서 스크롤의 종료시에 디스플레이 영역에서 스크롤된 영역을 지난 영역을 볼 수 있는 것에 기초하여 스크롤의 반대 방향으로 스크롤된 영역의 바운스를 유발하는 단계를 더 포함한다. 스크롤된 영역은 콘텐츠 영역일 수 있다.
본 발명의 소정 실시예들에서, 바운스 설정 호출의 전송은 바운스 설정 호출의 발행, 개시, 소환 또는 수신 중 하나이다.
도 3은 본 발명의 소정 가르침에 따른 흐름도 형태의 애플리케이션 프로그래밍 인터페이스의 상세를 나타낸다. 애플리케이션 프로그래밍 인터페이스는 러버밴드 동작을 제공하기 위해 사용자 인터페이스 소프트웨어가 소프트웨어 애플리케이션과 상호작용하는 환경 내에서 동작한다. 러버밴드 동작을 제공하기 위한 방법(300)은 블록 302에서 디스플레이 내에 표시된 스크롤된 영역의 러버밴딩을 유발하기 위한 러버밴드 호출을 전송하는 단계를 포함한다. 방법(300)은 블록 304에서 디스플레이의 적어도 하나의 에지에 대한 변위 값들을 설정하기 위한 에지 러버밴드 호출을 전송하는 단계를 더 포함한다. 일부 실시예들에서, 변위 값들은 상하 에지, 좌우 에지 또는 모든 에지에 대해 설정된다.
방법(300)에 따른 스크롤된 영역의 러버밴딩은 스크롤된 영역이 스크롤에 기초하여 장치의 디스플레이의 디스플레이 영역을 초과할 때 사전 결정된 최대 변위 값만큼 발생한다. 사용자가 디스플레이의 콘텐츠를 스크롤하여 디스플레이 내에 콘텐츠의 에지를 지난 영역이 보이게 하는 경우, 변위 값은 콘텐츠 바깥 영역의 최대 양을 제한한다. 스크롤의 종료시에, 콘텐츠는 뒤로 슬라이딩되어, 콘텐츠 바깥 영역은 디스플레이 상에서 더 이상 볼 수 없게 된다.
본 발명의 소정 실시예들에서 러버밴드 호출의 전송은 러버밴드 호출의 발행, 개시, 소환 또는 수신 중 하나이다.
도 4는 터치 감지 디스플레이(408)를 구비한 휴대용 전자 장치(400)의 사용자 인터페이스의 일 실시예를 나타내는 개략도이다. 디스플레이(408)는 윈도우(410)를 포함한다. 윈도우(410)는 정보 객체들(412-1 내지 412-4)과 같은 하나 이상의 표시된 객체들을 포함할 수 있다. 일 실시예에서, 정보 객체들(412)은 항목들의 리스트 내의 하나 이상의 개인에 대한 접촉 정보에 대응할 수 있다. 표시된 객체들은 (도 4에 축척으로 도시되지 않은) 사용자의 하나 이상의 손가락(416)과 연관된 것과 같은 디스플레이와의 접촉의 포인트의 이동(414)을 검출 또는 결정하는 것에 응답하여 이동될 수 있다. 일부 실시예들에서, 표시된 객체들의 이동은 접촉 포인트의 가속 이동의 검출 또는 결정에 응답하여 가속화될 수 있다. 실시예(400)는 하나의 윈도우(410)를 포함하지만, 다른 실시예들에서는 둘 이상의 디스플레이 윈도우가 존재할 수 있다. 또한, 실시예(400)는 특정 방향의 이동(414)을 도시하지만, 다른 실시예들에서 표시된 객체의 이동은 하나 이상의 다른 방향의 이동(414)에 응답하거나, 스칼라(즉, 방향과 무관한 결정 또는 검출된 이동)에 응답할 수 있다.
도 5a-5c는 장치 상에서 항목들의 리스트를 리스트의 말단까지 스크롤링하는 것을 나타내는데, 이 시점에서 리스트의 끝에 있는 하나 이상의 표시된 항목들은 디스플레이의 끝에서 부드럽게 바운스되고, 방향을 바꾼 후, 옵션으로서 정지하게 된다. 도 5a는 터치 감지 디스플레이를 구비한 휴대용 전자 장치(400)의 사용자 인터페이스의 일 실시예를 나타내는 개략도이다. 정보 객체(412-1)와 같은 하나 이상의 표시된 객체는 스크롤된 영역의 에지인 항목들의 리스트의 말단(514)으로부터 소정 거리(512-1)에 있을 수 있으며, 리스트가 스크롤되는 동안 소정 속도(510-1)로 이동될 수 있다. 말단(514)은 윈도우(410) 및/또는 디스플레이(408)와 연관된 물리적 경계와 달리, 표시된 객체들과 연관된 가상 경계라는 점에 유의한다. 도 5b에 도시된 바와 같이, 정보 객체(412-1)와 같은 하나 이상의 표시된 객체가 말단(514)에 도달하거나 말단과 교차할 때, 스크롤링에 대응하는 이동이 중지될 수 있는데, 즉 스크롤링 속도가 순간적으로 0이 될 수 있다. 이어서, 도 5c에 도시된 바와 같이, 정보(412-1)와 같은 하나 이상의 표시된 객체는 방향을 바꿀 수 있다. 말단(514)과 교차한 후의 소정 시간에, 정보 객체(412-1)는 속도(510-2)를 가질 수 있고, 말단(514)으로부터 소정 거리(512-2)에 있을 수 있다. 일부 실시예들에서, 거리(512-2)가 거리(512-1)와 동일할 때, 속도(510-2)의 크기는 속도(510-1)의 크기보다 작을 수 있는데, 즉 하나 이상의 표시된 객체의 움직임은 스크롤링 리스트가 그의 말단에 도달하여 "바운스"된 후에 약해진다.
본 발명의 적어도 일부 실시예들에서, 방법(200)은 도 5a-5c에 설명된 바운스 동작들을 수행한다. 블록 202에서 전송되는 바운스 호출은 바운스 동작이 인에이블되는지를 결정한다. 최대 및 최소 바운스 값들은 스크롤된 영역의 스크롤의 반대 방향으로의 바운스의 양을 결정한다.
도 6a-6d는 일부 실시예들에 따른, 항목들의 리스트의 리스트 말단까지의 스크롤링을 도시하는데, 이 시점에서 말단을 지난 영역이 표시되며, 이어서 리스트는 말단을 지난 영역이 더 이상 표시되지 않을 때까지 반대 방향으로 스크롤된다. 방법(300)의 러버밴드 동작은 리스트된 항목들이 이메일 메시지들인 도 6a-6d의 예에 도시되어 있다. 도 6a-6d는 일부 실시예들에 따른 인박스를 관리하기 위한 예시적인 사용자 인터페이스(3500A)를 나타낸다. 유사한 사용자 인터페이스가 다른 메일 박스들(예를 들어, 초안, 전송 완료, 쓰레기, 개인 등)을 표시 및 관리하는 데 사용될 수 있다. 또한, 인스턴트 메시지 대화들, 선호 전화 번호들, 접촉 정보 라벨들, 이메일 폴더들, 이메일 어드레스들, 물리 어드레스들, 링톤들 또는 앨범명들의 리스트들을 포함하지만 이에 한정되지 않는 다른 타입의 리스트들이 가능하다.
이메일들의 리스트가 할당된 스크린 영역 이상을 채우는 경우, 사용자는 터치 스크린 상에서 수직 상향 및/또는 수직 하향 스와이프(swipe) 제스처들을 이용하여 이메일들을 스크롤할 수 있다. 도 6a에 도시된 예에서, 상부에 표시된 Bruce Walker의 이메일(3530) 및 하부에 표시된 Kim Brook의 이메일(3532)을 포함하는 이메일들의 리스트의 일부는 스크린 영역에 표시된다. 사용자는 수직 하향 스와이프 제스처(3514)를 수행하여 리스트의 상부를 향해 스크롤링한다. 수직 하향 제스처(3514)는 정확히 수직일 필요는 없으며, 실질적으로 수직인 제스처이면 충분하다. 일부 실시예들에서는, 완전히 수직인 것으로부터 사전 결정된 각도 내의 제스처가 수직 스크롤링으로 이어진다.
수직 하향 제스처(3514)의 검출의 결과로서, 도 6b에서는 표시된 이메일들이 하향 시프트되었으며, 따라서 이전에 하부에 표시된 Kim Brook의 이메일(3532)은 더 이상 표시되지 않고, 이전에 상부에 표시된 Bruce Walker의 이메일(3530)은 이제 상부로부터 두 번째이며, 도 6a에는 표시되지 않았던 Aaron Jones의 이메일(3534)이 이제는 리스트의 상부에 표시된다.
이 예에서, Aaron Jones의 이메일(3534)은 리스트 내의 첫 번째 이메일이며, 따라서 리스트의 말단이다. 이 이메일(3534)에 도달한 때, 수직 하향 제스처(3514)의 계속된 검출에 응답하여, 첫 번째 이메일(3534) 위의(즉, 리스트의 말단을 지난) 영역(3536)(도 6c)이 표시된다. 일부 실시예들에서, 리스트의 말단을 넘어 표시된 영역은 리스트의 배경과 시각적으로 구별되지 않는다. 도 6c에서, 영역(3536) 및 이메일들(예를 들어, 이메일들 3534 및 3530)의 배경 양자는 백색이며, 따라서 시각적으로 구별되지 않는다.
수직 하향 제스처(3514)가 완료되어, 대응하는 객체가 터치 스크린 디스플레이 상에서 또는 근처에서 더 이상 검출되지 않는 경우, 리스트는 영역(3536)이 더 이상 표시되지 않을 때까지 반대 방향으로 스크롤된다. 도 6d는 이러한 반대 방향의 스크롤링의 결과를 나타내는데, 이제는 Aaron Jones의 이메일(3534)이 리스트에 할당된 스크린 영역의 상부에 표시되고, 영역(3536)은 표시되지 않는다.
도 6a-6d의 예에서, 수직 하향 제스처는 리스트 내의 첫 번째 항목을 지난 영역의 표시로 이어졌다. 도 3에서 설명된 바와 같이, 사전 결정된 최대 변위(예를 들어, 리스트 내의 첫 번째 항목을 지난 영역의 표시)에 대한 값들이 블록 304에서 상부 및 하부 에지들에 대해 또는 블록 306에서 윈도우의 모든 에지들에 대해 설정된다.
마찬가지로, 리스트가 마지막 항목까지 스크롤된 경우에, 수직 상향 제스처가 계속되는 경우에는, 수직 상향 제스처는 리스트의 마지막 항목을 지난 영역의 표시로 이어질 수 있다. 마지막 항목은 첫 번째 항목과 마찬가지로 리스트의 말단으로 간주될 수 있다. 전술한 바와 같이, 제스처는 수직 스크롤링으로 이어지기 위해 정확히 수직일 필요는 없으며, 완전히 수직인 것으로부터 사전 정의된 각도 범위 내의 제스처이면 충분하다.
도 7은 본 발명의 소정의 가르침에 따른 흐름도 형태의 애플리케이션 프로그래밍 인터페이스의 상세를 나타낸다. 애플리케이션 프로그래밍 인터페이스는 지향성 스크롤링 동작을 제공하기 위해 사용자 인터페이스 소프트웨어가 소프트웨어 애플리케이션과 상호작용하는 환경 내에서 동작한다. 애플리케이션 프로그래밍 인터페이스(API)를 통해 조작하기 위한 방법(700)은 블록 702에서 지향성 스크롤링이 인에이블되는지를 결정하기 위한 지향성 스크롤 각도 호출을 전송하는 단계를 포함한다. 방법(700)은 블록 704에서 스크롤링을 수직 또는 수평 방향 중 적어도 하나로 록킹하기 위한 스크롤 각도를 설정하기 위한 지향성 스크롤 각도 호출을 전송하는 단계를 더 포함한다. 방법(700)은 블록 706에서 사용자 입력이 제1 스크롤 각도 이하인 수평 방향과의 각도를 형성하는 경우에 스크롤링을 수평 방향으로 록킹하는 단계를 더 포함한다. 방법(700)은 블록 708에서 사용자 입력이 제2 스크롤 각도 이하인 수직 방향과의 각도를 형성하는 경우에 스크롤링을 수직 방향으로 록킹하는 단계를 더 포함한다.
소정 실시예들에서, 드래그 형태의 사용자 입력은 제1 스크롤 각도보다 작은 수평 방향과의 각도를 형성한다. 이 경우, 사용자는 아마도 수평 방향으로 스크롤링하는 것을 의도한다. 스크롤링은 사용자 입력이 제1 스크롤 각도를 초과할 때까지 수평 방향으로 록킹될 것이다. 제2 스크롤 각도는 사용자 입력을 수직 방향으로 록킹하는 데 사용될 수 있다. 제2 스크롤 각도는 제1 스크롤 각도와 동일하게 설정될 수 있다.
도 8은 장치의 디스플레이의 스크롤을 수평 또는 수직 방향으로 록킹하기 위한 제1 및 제2 스크롤 각도들을 나타낸다. 수평 방향(802) 및 수직 방향(804)은 장치의 윈도우 또는 디스플레이와 관련된다. 방법(700)에서 설명된 바와 같이, 제1 스크롤링 각도(806 또는 808) 이하인 수평 방향(802)과의 각도를 형성하는 드래그 이동과 같은 사용자 입력은 사용자 입력을 수평 방향으로 록킹할 것이다. 마찬가지로, 제2 스크롤링 각도(810 또는 812) 이하인 수직 방향(804)과의 각도를 형성하는 사용자 입력은 사용자 입력을 수직 방향으로 록킹할 것이다. 제1 및 제2 스크롤링 각도들은 동일 각도로 또는 상이한 각도들로 설정될 수도 있다. 예를 들어, 제1 및 제2 스크롤링 각도들은 25도로 설정될 수 있다. 수평 또는 수직 방향에 대해 25도 이하인 사용자 입력은 스크롤링을 적절한 방향으로 록킹할 것이다.
일부 실시예들에서, 수평 및 수직 록킹 각도들은 부분적으로 콘텐츠의 양태에 의해 결정될 수 있다. 예를 들어, 긴 페이지의 형태의 콘텐츠는 수평 록킹 각도보다 큰 수직 록킹 각도를 받을 수 있다.
도 9는 본 발명의 소정 가르침에 따른 흐름도 형태의 애플리케이션 프로그래밍 인터페이스의 상세를 나타낸다. 애플리케이션 프로그래밍 인터페이스는 감속 스크롤 동작을 제공하기 위해 사용자 인터페이스 소프트웨어가 소프트웨어 애플리케이션과 상호작용하는 환경 내에서 동작한다. 감속 스크롤 동작을 제공하기 위한 방법(900)은 블록 902에서 드래그 사용자 입력에 대한 감속 팩터를 설정하기 위한 감속 스크롤 호출을 전송하는 단계를 포함한다. 방법(900)은 블록 904에서 드래그 사용자 입력의 속도 및 감속 팩터에 기초하여 정지에 이르기까지 스크롤을 늦추는 단계를 더 포함한다.
소정 실시예들에서, 드래그 형태의 사용자 입력은 소정 기간 동안 스크롤 동작을 소환한다. 사용자 입력은 소정의 속도를 갖는다. 장치의 디스플레이의 윈도우 또는 디스플레이 영역의 스크롤된 영역의 스크롤은 드래그 이동 동안 사용자 입력의 속도에 감속 팩터를 적용함으로써 사용자 입력이 중지된 후에 정지될 것이다.
도 10은 본 발명의 소정의 가르침에 따른 흐름도 형태의 애플리케이션 프로그래밍 인터페이스의 상세를 나타낸다. 애플리케이션 프로그래밍 인터페이스는 스크롤 이력 동작을 제공하기 위해 사용자 인터페이스 소프트웨어가 소프트웨어 애플리케이션과 상호작용하는 환경 내에서 동작한다. 스크롤 이력 동작을 제공하기 위한 방법(1000)은 블록 1002에서 사용자 입력이 스크롤을 소환하는지를 결정하기 위한 스크롤 이력 호출을 전송하는 단계를 포함한다. 방법(1000)은 블록 1004에서 사용자 입력이 스크롤을 소환하는지를 결정하기 위한 이력 값을 설정하는 단계를 더 포함한다.
소정 실시예들에서, 장치의 디스플레이 또는 디스플레이 내의 윈도우를 가로지르는 소정 거리에 걸치는 드래그 형태의 사용자 입력은 스크롤 동작을 소환한다. 이력 값은 사용자 입력이 스크롤 동작을 소환하기 전에 디스플레이 또는 윈도우를 가로질러 드래그해야 하는 소정 거리를 결정한다. 소정의 사전 결정된 거리를 드래그하지 못하는 사용자 입력은 스크롤 동작을 소환하지 못하며, 마우스 업 또는 다운 입력 또는 다른 타입의 입력으로 간주될 수 있다.
도 11은 본 발명의 소정 가르침에 따른 흐름도 형태의 애플리케이션 프로그래밍 인터페이스의 상세를 나타낸다. 애플리케이션 프로그래밍 인터페이스는 장치의 스크롤 영역 에지 또는 윈도우 에지에 스크롤 지시자를 첨부하기 위해 사용자 인터페이스 소프트웨어가 소프트웨어 애플리케이션과 상호작용하는 환경 내에서 동작한다. 일부 실시예들에서, 스크롤 영역 에지는 콘텐츠 에지와 연관된다. 윈도우 또는 디스플레이 에지는 디스플레이 영역의 에지와 연관될 수 있다. 스크롤 지시자를 제공하기 위한 방법(1100)은 블록 1102에서 적어도 하나의 스크롤 지시자가 스크롤 영역의 에지 또는 윈도우 에지에 첨부되는지를 결정하기 위한 스크롤 지시자 호출을 전송하는 단계를 포함한다. 스크롤 지시자는 임의의 디스플레이 에지, 윈도우 에지 또는 스크롤 영역 에지 상에 표시될 수 있다. 방법(1100)은 블록 1104에서 옵션으로서 스크롤 지시자 호출에 기초하여 적어도 하나의 스크롤 지시자를 스크롤 영역의 에지에 첨부하는 단계를 더 포함한다. 대안으로, 방법(1100)은 블록 1106에서 옵션으로서 스크롤 지시자 호출에 기초하여 적어도 하나의 스크롤 지시자를 뷰의 윈도우 에지에 첨부하는 단계를 더 포함한다.
일부 실시예들에서, 방법(1100)의 동작들은 변경, 수정, 결합 또는 삭제될 수 있다. 예를 들어, 블록 1104가 삭제될 수 있다. 또한, 방법(1100)으로부터 블록 1106이 삭제될 수 있다. 대안으로, 블록 1104 및 블록 1106의 순서가 바뀔 수 있다. 본 명세서 내에 개시된 다양한 동작을 구비하는 다른 방법들도 변경, 수정, 재배열, 겹침(collapse), 조합 또는 삭제될 수 있다.
본 발명의 소정 실시예들에서, 스크롤 지시자 호출의 전송은 스크롤 지시자 호출의 발행, 개시, 소환 또는 수신 중 하나이다. 예를 들어, 사용자 인터페이스 소프트웨어(예를 들어, 소프트웨어 키트 또는 라이브러리)는 소프트웨어 애플리케이션으로부터 스크롤 지시자 호출을 수신할 수 있다.
도 12는 본 발명의 소정 가르침에 따른 흐름도 형태의 애플리케이션 프로그래밍 인터페이스의 상세를 나타낸다. 애플리케이션 프로그래밍 인터페이스는 부주의한 사용자 입력이 장치의 디스플레이의 뷰와 접촉하는지를 결정하기 위해 사용자 인터페이스 소프트웨어가 소프트웨어 애플리케이션과 상호작용하는 환경 내에서 동작한다. 방법(1200)은 블록 1202에서 사용자 입력이 부주의한 것이었는지를 결정하기 위한 부주의 사용자 입력 호출을 전송하는 단계를 포함한다. 방법(1200)은 블록 1204에서 부주의 사용자 입력 호출의 결정에 기초하여 부주의 사용자 입력을 무시하는 단계를 더 포함한다. 일 실시예에서, 부주의 사용자 입력 호출은 사용자 입력이 부주의한 엄지 손가락이었는지를 결정하기 위한 엄지 손가락 검출 호출을 포함한다.
본 발명의 소정 실시예들에서, 부주의 사용자 입력 호출의 전송은 부주의 사용자 입력 호출의 발행, 개시, 소환 또는 수신 중 하나이다.
제스처 API는 제스처링을 처리하기 위해 애플리케이션과 사용자 소프트웨어 사이의 인터페이스를 제공한다. 제스처링은 뷰, 윈도우 또는 디스플레이에 대한 스케일링, 회전 또는 다른 변경들을 포함할 수 있다. 마스크는 소정의 변경들만을 허가하면서, 다른 변경들은 제한하거나 허가하지 않을 수 있다. 모든 종류의 이벤트들은 그래픽 프레임워크를 통해 애플리케이션 내로 들어간다. 이들은 대기열(queue)에 넣어지고, 필요에 따라 콜랄레스(collalece)되며, 디스패치(dispatch)된다. 이벤트들이 시스템 레벨 이벤트들인 경우(예를 들어, 애플리케이션이 일시 중지되어야 하고, 장치 배향이 변경되는 등), 이벤트들은 사용자 인터페이스 소프트웨어의 클래스의 인스턴스를 갖는 애플리케이션으로 라우팅된다. 이벤트들이 사용자 입력에 기초하는 손(hand) 이벤트들인 경우, 이벤트들은 이들이 발생한 윈도우로 라우팅된다. 이어서, 윈도우는 인스턴스의 마우스 및 제스처 메소드들을 호출함으로써 그러한 이벤트들을 적절한 제어로 라우팅한다. 마우스 다운 또는 마우스 입력 함수를 수신하는 제어는 손이 치워질 때까지 모든 미래의 호출들을 계속 취득할 것이다. 제2 손가락이 검출되는 경우, 제스처 메소드들 또는 함수들이 소환된다. 이러한 함수들은 제스처 시작, 변경 및 종료 호출들을 포함할 수 있다. 제스처 시작 호출을 수신하는 제어는 제스처가 종료될 때까지 모든 미래의 제스처 변경 호출들을 전송할 것이다.
도 13은 본 발명의 소정 가르침에 따른 흐름도 형태의 애플리케이션 프로그래밍 인터페이스의 상세를 나타낸다. 애플리케이션 프로그래밍 인터페이스는 제스처 동작을 제공하기 위해 사용자 인터페이스 소프트웨어가 소프트웨어 애플리케이션과 상호작용하는 환경 내에서 동작한다. 제스처 동작을 제공하기 위한 방법(1300)은 블록 1302에서 제스처 처리 이벤트 호출을 전송하는 단계를 포함한다. 방법(1300)은 블록 1304에서 제스처 처리 이벤트 호출에 응답하여 제스처 변경 호출을 전송하는 단계를 더 포함한다.
소정 실시예들에서는, 둘 이상의 포인트의 형태의 사용자 입력이 장치의 디스플레이에 의해 수신된다. 장치의 멀티 터치 드라이버가 사용자 입력을 수신하고, 이벤트를 이벤트 객체 내에 패키지한다. 윈도우 서버가 이벤트 객체를 수신하고, 이벤트 객체가 제스처 이벤트 객체인지를 결정한다. 윈도우 서버가 제스처 이벤트 객체가 수신된 것으로 결정하는 경우, 사용자 인터페이스 소프트웨어는 블록 1302에서 제스처 처리 호출을 뷰와 연관된 소프트웨어 애플리케이션으로 발행 또는 전송한다. 소프트웨어 애플리케이션은 제스처 이벤트가 수신되었음을 확인하고, 제스처 처리 호출을 사용자 인터페이스 소프트웨어의 라이브러리로 전송한다. 또한, 윈도우 서버는 제스처 이벤트 객체와, 사용자 입력을 수신한 뷰를 연관시킨다. 라이브러리는 블록 1304에서 제스처 처리 이벤트 호출에 응답하여 제스처 변경 호출을 전송함으로써 응답한다.
일 실시예에서, 사용자 입력과 연관된 윈도우 또는 뷰는 제스처 이벤트를 수행하기 위해 변경 호출을 수신한다. 뷰를 제공하는 사용자 소프트웨어는 제스처 시작 이벤트 호출, 제스처 변경 이벤트 호출, 뷰에 대한 설정을 스케일링하기 위한 줌 및 제스처 종료 호출을 수신한다. 제스처 호출들은 손 이벤트, 키보드 이벤트, 시스템 이벤트 등과 같은 타입을 갖는 베이스 이벤트일 수 있는 제스처 이벤트의 입력을 수신한다. 애플리케이션과 연관된 델리게이트(delegate)가 제스처 시작 호출, 제스처 변경 완료 호출 및 제스처 종료 완료 호출을 수신한다. 사용자 소프트웨어는 제스처 프로세스의 실행 시간 동안 애플리케이션 내로 동적 링크되고 있다.
일부 실시예들에서, 제스처 변경 함수 호출은 제스처에 대한 아래의 정보를 포함한다.
현재 다운된 손가락들의 수;
최초 다운된 손가락들의 수;
손의 회전;
손의 스케일;
손의 병진 이동;
내측 및 최외측 손가락들의 위치; 및
제1 손가락의 압력.
다른 실시예들에서는, 각각의 다운된 손가락에 대한 더 많은 정보가 아래와 같이 포함될 수 있다.
손가락의 단계(방금 터치 다운, 완전히 누름, 들어 올림 등);
손가락의 위치;
손가락의 근접도(얼마나 강하게 터치하고 있는지);
손가락의 배향(오보이드(ovoid)가 어느 각도에 있는지);
장축 및 단축의 길이;
손가락의 속도; 및
손가락의 오보이드의 편심도.
제스처 이벤트 객체는 코드 카운트(chord count)(예를 들어, 뷰 또는 디스플레이와 접촉한 손가락들의 수), 코드 시작 이벤트, 코드 변경 이벤트 및 코드 종료 이벤트를 갖는 코드 이벤트 객체일 수 있다. 코드 변경 이벤트는 스케일링 또는 회전 변환을 포함할 수 있다.
도 14는 본 발명의 소정 가르침에 따른 흐름도 형태의 애플리케이션 프로그래밍 인터페이스의 상세를 나타낸다. 애플리케이션 프로그래밍 인터페이스는 장치의 디스플레이의 디스플레이 영역, 윈도우 또는 뷰의 스케일링 변환을 제공하기 위해 사용자 인터페이스 소프트웨어가 소프트웨어 애플리케이션과 상호작용하는 환경 내에서 동작한다. 스케일링 변환을 제공하기 위한 방법(1400)은 블록 1402에서 복수의 입력 포인트를 갖는 사용자 입력과 연관된 뷰에 대한 스케일링 변환을 결정하기 위한 스케일링 변환 호출을 전송하는 단계를 포함한다. 방법(1400)은 블록 1404에서 스케일링 제스처 시작 호출을 전송하는 단계를 더 포함한다. 방법(1400)은 블록 1406에서 스케일링 제스처 진행 호출을 전송하는 단계를 더 포함한다. 방법(1400)은 블록 1408에서 스케일링 제스처 종료 호출을 전송하는 단계를 더 포함한다.
소정 실시예들에서, 둘 이상의 입력 포인트(예를 들어, 손가락들)의 형태의 사용자 입력은 사용자 입력과 연관된 뷰에 대한 스케일링 변환을 수행하는 제스처 이벤트를 소환하기 위해 함께 또는 따로 움직인다. 스케일 변환은 최소 및 최대 스케일 팩터를 포함한다. 도 15는 뷰의 스케일링 변환을 갖는 장치의 디스플레이(1502)를 나타낸다. 뷰(1504)(예를 들어, 웹, 텍스트 또는 이미지 콘텐츠)는 제1 스케일 팩터를 갖는다. 뷰(1504)와 연관된 사용자 입력(예를 들어, 따로 움직이는 두 손가락)은 뷰(1504)로부터, 뷰(1516)의 최대 스케일 팩터를 초과하는 제2 스케일 팩터를 갖는 뷰(1508)로 줌인하기 위한 제스처 이벤트로서 해석된다. 스냅백(snapback) 플래그는 뷰(1516)와 연관된 최대 스케일 팩터로 스냅백하기 전에 줌인이 최대 스케일 팩터를 넘어 뷰(1508)로 진행할 수 있는지를 결정한다.
도 16a는 뷰(1614)의 제1 스케일링 팩터를 갖는 장치의 디스플레이(1604)를 나타낸다. 뷰(1614)와 연관된 사용자 입력(예를 들어, 함께 움직이는 두 손가락 1608, 1610)은 뷰(1614)로부터 도 16b에 도시된 바와 같은 제2 스케일 팩터를 갖는 뷰(1664)로 줌인하기 위한 제스처 이벤트로서 해석된다. 점선 영역들(1602, 1650)은 콘텐츠의 전체 영역을 나타내며, 디스플레이 영역(1604, 1652)에는 단 하나의 콘텐츠가 표시되어 있다. 도 16a에서 도 16b로 스케일링 변환을 수행할 때, 제스처 이벤트의 중심인 도 16a의 중심(1612) 및 도 16b의 중심(1660)은 디스플레이(1604)에 대해 동일 위치에 유지된다. 동작 중에 줌의 결과로서 전체 콘텐츠(1650)의 보다 작은 부분이 디스플레이(1604) 상에 표시되고 있음을 지시하기 위해 스크롤 지시자(1606)는 변환 동안 스크롤 지시자(1654)가 되도록 축소된다. 동작 중에 줌의 결과로서 콘텐츠의 보다 큰 부분이 도 16b의 디스플레이(1652) 상에 표시되고 있지 않음을 나타내기 위해 점선 영역(1650)은 점선 영역(1602)보다 크다.
본 발명의 적어도 일부 실시예들에서, 사용자는 도 16c에 도시된 바와 같이 뷰(1670)를 2x의 스케일 팩터에서 1x의 스케일 팩터로 변경하기를 원한다. 제2 세트의 사용자 입력들(1676, 1678)로 이동하는 제1 세트의 사용자 입력들(1672, 1674)은 스케일 팩터를 2x에서 1x로 감소시킬 것이다. 사용자 입력들을 뷰(1670)를 가로질러 큰 거리를 이동시키지 않고서, 사용자가 2x에서 1x로 스케일링하는 것이 바람직할 수 있다. 사용자 인터페이스 소프트웨어가 소프트웨어 애플리케이션과 상호작용하는 환경에서는, 복수의 입력 포인트를 갖는 사용자 입력과 연관된 뷰에 대한 스케일링 변환을 결정하기 위해 제스처 스케일링 변환 플래그가 설정될 수 있다. 스케일링 변환 플래그는 현재의 스케일 팩터에서 최소 스케일 팩터로 또는 현재의 스케일 팩터에서 최대 스케일 팩터로 스케일링한다. 예를 들어, 플래그는 1.5x 스케일 팩터 및 제3 세트의 사용자 입력들(1680, 1682)과 연관된 위치에 설정될 수 있다. 제스처 스케일링 변환 플래그가 1.5x의 스케일 팩터로서 설정된 경우, 스케일 팩터를 2x에서 1x로 변경하기를 원하는 사용자는 그의 손가락들, 즉 사용자 입력들을 제1 세트(1672, 1674)에서 제3 세트(1680, 1682)로 이동시키기만 하면 된다.
도 17은 본 발명의 소정 가르침에 따른 흐름도 형태의 애플리케이션 프로그래밍 인터페이스의 상세를 나타낸다. 애플리케이션 프로그래밍 인터페이스는 장치의 디스플레이의 뷰, 윈도우 또는 디스플레이 영역의 회전 변환을 제공하기 위해 사용자 인터페이스 소프트웨어가 소프트웨어 애플리케이션과 상호작용하는 환경 내에서 동작한다. 회전 변환을 제공하기 위한 방법(1700)은 블록 1702에서 복수의 입력 포인트를 갖는 사용자 입력과 연관된 뷰에 대한 회전 변환을 결정하기 위한 회전 변환 호출을 전송하는 단계를 포함한다. 방법(1700)은 블록 1704에서 회전 제스처 시작 호출을 전송하는 단계를 더 포함한다. 방법(1700)은 블록 1706에서 스케일링 제스처 진행 호출을 전송하는 단계를 더 포함한다. 방법(1700)은 블록 1708에서 스케일링 제스처 종료 호출을 전송하는 단계를 더 포함한다.
소정 실시예들에서, 둘 이상의 입력 포인트의 형태의 사용자 입력은 사용자 입력과 연관된 뷰에 대한 회전 변환을 수행하는 제스처 이벤트를 소환하도록 회전한다. 회전 변환은 연관된 최소 및 최대 회전 뷰들에 대한 최소 및 최대 회전도를 포함한다. 사용자 입력은 뷰가 최대 회전도로 스냅백되기 전에 일시적으로 뷰를 최대 회전도를 넘어 회전시킬 수 있다.
도 18은 본 발명의 소정 가르침에 따른 흐름도 형태의 애플리케이션 프로그래밍 인터페이스의 상세를 나타낸다. 애플리케이션 프로그래밍 인터페이스는 장치의 디스플레이의 디스플레이 영역, 윈도우 또는 뷰와 연관된 적어도 하나의 애니메이션을 델리게이트에게 통지하기 위해 사용자 인터페이스 소프트웨어가 소프트웨어 애플리케이션과 상호작용하는 환경에서 동작한다. 애니메이션의 지연이 API에 의해 지정될 수 있다. 또한, 다수의 애니메이션이 API에 의해 우선 순위를 할당받을 수 있다. 델리게이트에게 통지하기 위한 방법(1800)은 블록 1802에서 임의의 애니메이션이 발생하는지를 판정하는 단계를 포함한다. 방법(1800)은 블록 1804에서 애니메이션의 진행을 검사하는 단계를 더 포함한다. 진행이 발생한 경우, 블록 1806에서 애니메이션의 다음 상태(예를 들어, 위치, 불투명도 또는 변환)가 계산될 수 있다. 블록 1806에서 진행이 완료된 경우, 블록 1808에서 완료된 애니메이션과 연관된 뷰가 델리게이트와 연관되는지가 판정된다. 그러한 경우, 블록 1810에서 델리게이트에게 뷰에 대한 애니메이션을 통지하기 위해 델리게이트 호출이 전송된다. 소프트웨어 애플리케이션의 제어하에 동작하는 델리게이트는 뷰가 애니메이션에 의해 수정되는 것에 응답하여 다른 뷰들을 변경할 수 있다.
소정 실시예들에서, 소프트웨어는 사용자 입력과 연관된 뷰에 대한 스케일링 변환을 수행하는 애니메이션을 소환한다. 디스플레이는 다수의 뷰를 포함할 수 있다. 스케일링 변환에 의해 크기가 증가되는 뷰는 다른 뷰들을 차단할 수 있는데, 이 경우에 다른 뷰들은 크기가 줄여지는 것이 필요할 수 있다. 대안으로, 스케일링 변환에 의해 크기가 감소되는 뷰는 다른 뷰들이 크기를 증가시킬 추가 영역을 생성할 수 있다.
도 19는 장치의 디스플레이 상에 표시된 디스플레이 영역, 윈도우들 또는 뷰들을 애니메이팅하기 위한 방법의 흐름도이다. 방법(1900)은 블록 1902에서 적어도 2개의 애니메이션을 개시하는 단계를 포함한다. 방법(1900)은 블록 1904에서 각각의 애니메이션의 진행을 결정하는 단계를 더 포함한다. 방법(1900)은 블록 1906에서 단일 타이머에 기초하여 각각의 애니메이션을 완료하는 단계를 더 포함한다.
본 발명의 소정 실시예들에서, 단일 타이머는 장치의 디스플레이의 현재 프레임과 다음 프레임의 표시 사이의 기간인 리드로우 인터벌에 기초하는 타이머를 포함한다. 이 경우, 애니메이션의 변화들은 디스플레이의 다음 프레임 동안 변화들을 표시하기 위해 리드로우 인터벌 동안 디스플레이에 대해 갱신된다. 각각의 애니메이션의 진행은 주기적으로 또는 진행 호출에 기초하여 계산될 수 있다.
방법(1900)은 각각의 애니메이션이 델리게이트와 연관되는지를 결정하는 단계를 더 포함할 수 있다. 이어서, 델리게이트는 애니메이션을 통지받는다. 애니메이션과 연관되지 않은 다른 뷰들은 델리게이트를 제어하는 소프트웨어 애플리케이션에 따라 변경될 수 있다.
도 20은 장치의 디스플레이 상에 표시된 디스플레이 영역, 윈도우들 또는 뷰들을 애니메이팅하기 위한 방법의 흐름도이다. 방법(2000)은 블록 2002에서 단일 애니메이션 타이머를 제공하는 단계를 포함한다. 방법(2000)은 블록 2004에서 단일 애니메이션 타이머를 이용하여 복수의 애니메이션을 애니메이팅하는 단계를 더 포함한다. 예를 들어, 단일 타이머는 동시에 발생하는 모든 애니메이션을 제어할 수 있다. 애니메이션들은 변환, 프레임 및 불투명도 애니메이션을 포함할 수 있다. 변환 애니메이션은 스케일링 또는 회전 변환을 포함할 수 있다. 프레임 애니메이션은 프레임의 리사이징을 포함할 수 있다. 불투명도 애니메이션은 불투명도를 불투명에서 투명으로 또는 그 반대로 변경한다.
도 21은 본 발명의 소정 가르침에 따른 흐름도 형태의 애플리케이션 프로그래밍 인터페이스의 상세를 나타낸다. 애플리케이션 프로그래밍 인터페이스는 장치의 디스플레이의 다수의 뷰 또는 윈도우와 연관된 애니메이션들을 동기화하기 위해 사용자 인터페이스 소프트웨어가 다수의 소프트웨어 애플리케이션 또는 프로세스와 상호작용하는 환경에서 동작한다. 애니메이션들을 동기화하기 위한 방법(2100)은 블록 2102에서 프로세스와 각자 연관된 뷰들의 속성들을 개별적으로 설정하는 단계를 포함한다. 예를 들어, 뷰의 속성 또는 특성은 위치, 크기, 불투명도 등을 포함할 수 있다. 애니메이션은 하나 이상의 속성을 제1 상태에서 제2 상태로 변경한다. 방법(2100)은 블록 2104에서 디스플레이의 다수의 뷰에 대한 애니메이션들을 동기화하기 위한 동기화 호출을 전송하는 단계를 더 포함한다. 동기화 호출은 다수의 뷰의 애니메이션을 요청하고 있는 프로세스들의 동기화의 식별과 같은 입력 파라미터들 또는 인수들 및 프로세스들의 리스트를 포함할 수 있다. 일 실시예에서, 동기화 호출은 애니메이션을 요청하고 있는 프로세스들의 식별 및 수를 포함한다. 일 실시예에서, 각각의 애플리케이션 또는 프로세스는 동기화 호출을 상이한 시간에 전송한다. 방법(2100)은 블록 2106에서 동기화 플래그가 인에이블될 때 동기화 확인 메시지를 전송하는 단계를 더 포함한다. 동기화 플래그는 동기화될 프로세스들이 사용자 인터페이스 소프트웨어를 동작시키는 윈도우 서버에 대한 각각의 전송 메시지를 가질 때 인에이블될 수 있다. 방법(2100)은 블록 2108에서 뷰들의 속성들을 제1 상태에서 제2 상태로 개별적으로 갱신하는 단계를 더 포함한다. 일 실시예에서, 윈도우 서버는 각각의 프로세스로부터 갱신된 속성들을 상이한 시간에 수신한다. 방법(2100)은 블록 2110에서 양 프로세스들이 제2 상태와 연관된 갱신된 속성들을 가질 때 요청된 애니메이션들을 드로잉하기 위한 애니메이션 시작 호출을 전송하는 단계를 더 포함한다.
일부 실시예들에서, 제1 데이터 구조 또는 계층 트리는 프로세스들의 뷰들 또는 윈도우들에 대응하는 계층 체계를 나타낸다. 제2 데이터 구조 또는 렌더링 트리는 계층 트리의 유사한 사본을 나타낸다. 그러나, 렌더링 트리는 독립 프로세스들이 그들의 개별 애니메이션들을 완료할 때까지 갱신되지 않는다. 이 시점에서, 렌더링 트리는 새로운 애니메이션들을 이용하여 스크린을 갱신하고 리드로우한다.
도 22a 및 22b는 장치의 디스플레이의 뷰들 또는 윈도우들의 리사이징의 동기화를 나타낸다. 예를 들어, 크기 속성을 갖는 제1 프로세스와 연관된 윈도우(2210)는 제1 상태, 즉 도 22a의 윈도우(2210)에서 제2 상태, 즉 도 22b의 윈도우(2210)로 변함으로써 크기가 증가할 수 있다. 거의 동시에, 제2 윈도우(2220)는 제1 윈도우(2210)의 크기 증가에 비례하여 크기가 감소할 수 있다. 방법(2100)은 도 22a 및 22b에 도시된 윈도우들(2210, 2220)의 리사이징의 동기화를 제공한다. 제1 상태에서 제2 상태로 변경하는 애니메이션들은 증식적으로 발생하고, 방법(2100)의 동기화와 함께 발생할 수 있다.
도 23은 데이터 처리 장치의 디스플레이 상에 표시된 애플리케이션의 뷰의 소유권을 바꾸기 위한 방법을 나타낸다. 방법(2300)은 블록 2302에서 계층이 뷰와 연관되고 뷰를 소유하는 계층 체계를 갖는 데이터 구조를 구축하는 단계를 포함한다. 계층들은 애플리케이션의 사용자 인터페이스에 대한 콘텐츠, 윈도우들, 비디오, 이미지들, 텍스트, 미디어들 또는 임의의 다른 타입의 객체일 수 있다. 방법(2300)은 블록 2304에서 데이터 구조로부터 계층을 제거하는 단계를 더 포함한다. 방법(2300)은 블록 2306에서 뷰의 소유권을 계층에서 뷰로 바꾸는 단계를 더 포함한다.
일부 실시예들에서, 데이터 구조로부터의 각각의 계층은 뷰와 연관된다. 뷰와 연관된 계층은 뷰에 의해 제공되는 콘텐츠를 생성하기 위해 델리게이트 함수 호출을 뷰로 전송한다. 제1 포인터 참조는 계층에서 뷰로 지시한다. 제2 포인터 참조는 뷰에서 계층으로 지시한다. 뷰와 같은 객체를 지시하는 참조들의 수는 객체의 보유 카운트로서 정의된다. 뷰는 계층이 데이터 구조로부터 제거될 것이라는 통지를 수신할 수 있다. 데이터 구조로부터의 계층의 제거는 장치의 디스플레이로부터 제거되는 계층과 연관된 뷰에 기초하여 발생할 수 있다. 계층이 데이터 구조 또는 계층 트리로부터 제거될 때, 계층에서 뷰로의 포인터가 제거될 것이다. 뷰는 뷰의 소유권이 보존되지 않는 경우에 0개의 보유 카운트를 가질 것이며, 메모리로부터 할당 해제되거나 제거될 것이다. 뷰는 소유권이 보존되는 경우에는 적어도 하나의 보유 카운트를 가질 것이다.
도 24는 장치의 디스플레이 상에 표시된 애플리케이션의 뷰의 메모리 관리를 위한 방법을 나타낸다. 방법(2400)은 블록 2402에서 적어도 하나의 계층이 뷰와 연관되는 계층 체계를 갖는 데이터 구조를 구축하는 단계를 포함한다. 방법(2400)은 블록 2404에서 데이터 구조를 메모리에 저장하는 단계를 더 포함한다. 방법(2400)은 블록 2406에서 다른 객체들로부터의 뷰에 대한 참조들의 수의 보유 카운트를 유지하는 단계를 더 포함한다. 방법(2400)은 블록 2408에서 보유 카운트가 0인 경우에 메모리로부터 뷰를 할당 해제하는 단계를 더 포함한다. 전술한 바와 같이, 뷰의 보유 카운트는 계층이 데이터 구조로부터 제거되는 경우에 감소할 것이다. 데이터 구조로부터의 계층의 제거는 장치의 디스플레이로부터 제거되는 계층과 연관된 뷰에 기초하여 발생할 수 있다.
도 25a 및 25b는 계층이 뷰와 연관되는 계층 체계를 갖는 데이터 구조를 나타낸다. 데이터 구조는 계층들(2502, 2504, 2506)을 포함한다. 계층(2506)은 뷰(2510)와 연관된다. 뷰(2510)와 연관된 계층(2506)은 뷰에 의해 제공되는 콘텐츠를 생성하기 위해 델리게이트 호출을 뷰로 전송한다. 제1 포인터 참조(2508)는 계층(2506)에서 뷰(2510)로 지시한다. 제2 포인터 참조(2512)는 뷰(2510)에서 계층(2506)으로 지시한다. 제3 포인터 참조(2532)는 사용자 인터페이스(UI) 제어기(2530)에서 뷰(2510)로 지시할 수 있다. UI 제어기(2530)는 사용자 입력에 응답하여 뷰(2510)를 스크롤링하는 것과 같은 뷰(2510)와 연관된 동작들을 제어할 수 있다. 도 25a의 뷰(2510)는 포인터 참조들(2508, 2532)에 기초하는 2의 보유 카운트를 갖는다.
계층(2506)이 도 25b에 도시된 바와 같이 데이터 구조로부터 제거되는 경우, 포인터(2508)가 제거된다. 뷰(2510)는 도 25b에 도시된 바와 같이 보다 낮은 보유 카운트를 가질 것이다. 뷰(2510)가 0의 보유 카운트를 갖는 경우, 뷰(2510)를 저장하는 메모리는 할당 해제될 것이다.
도 26은 장치 상의 표시를 위해 사용자 인터페이스의 미디어 및 비 미디어 콘텐츠를 합성하기 위한 방법을 나타낸다. 방법(2600)은 블록 2602에서 장치의 사용자 인터페이스와 연관된 계층 체계를 갖는 데이터 구조를 구축하는 단계를 포함한다. 방법(2600)은 블록 2604에서 데이터 구조의 각각의 계층이 미디어 또는 비 미디어 콘텐츠와 연관되는지를 결정하는 단계를 더 포함한다. 데이터 구조 또는 계층 트리는 데이터 구조의 계층들 각각이 미디어 또는 비 미디어 콘텐츠와 연관되는지를 결정하기 위해 트래버스(traverse)된다. 방법(2600)은 블록 2606에서 데이터 구조로부터 미디어 콘텐츠와 연관된 계층을 분리하는 단계를 더 포함한다. 방법(2600)은 블록 2606에서 제1 메모리 위치에 미디어 콘텐츠를 저장하는 단계를 더 포함한다. 방법(2600)은 블록 2608에서 비 미디어 콘텐츠를 제2 메모리 위치에 저장하는 단계를 더 포함한다. 방법(2600)은 블록 2610에서 장치 상의 표시를 위해 미디어 및 비 미디어 콘텐츠를 합성하는 단계를 더 포함한다.
일부 실시예들에서, 미디어 및 비 미디어 콘텐츠를 합성하는 단계는 제1 메모리 위치로부터 미디어 콘텐츠를 검색하는 단계, 제2 메모리 위치로부터 비 미디어 콘텐츠를 검색하는 단계, 및 미디어 및 비 미디어 콘텐츠를 디스플레이로 직접 스캐닝하는 단계를 포함한다. 메모리 위치는 장치 내의 캐시, 메인 메모리, 그래픽 처리 유닛 또는 다른 위치에 위치하는 임의 타입의 메모리일 수 있다. 미디어 콘텐츠는 비디오, 비디오 플러그-인, 오디오, 이미지 또는 다른 시간 가변 미디어들을 포함할 수 있다. 미디어 콘텐츠는 YUV 모델의 형태일 수 있는데, Y는 휘도 성분(명도)을 나타내고, U 및 V는 색도(칼라) 성분들을 나타낸다. 미디어 콘텐츠는 실질적으로 초당 20 내지 40 프레임의 속도로 디스플레이로 스캐닝될 수 있다. 미디어 콘텐츠는 장치의 디스플레이로 스캐닝되기 전에 스케일링될 수 있다.
비 미디어 콘텐츠는 빈번한 갱신을 필요로 하지 않는 콘텐츠, 뷰들 및 이미지들을 포함할 수 있다. 비 미디어 콘텐츠는 적색, 녹색 및 청색(부가 광 모델들에 종종 사용됨)이 다른 칼라들을 생성하기 위해 다양한 방식으로 조합되는 부가 모델인 RGB 모델의 형태일 수 있다. 비 미디어 콘텐츠는 미디어 콘텐츠에 비해 더 느린 속도로 디스플레이로 스캐닝될 수 있다.
도 27은 계층 체계를 갖는 데이터 구조 또는 계층 트리를 나타낸다. 계층들은 미디어 및 비 미디어 콘텐츠와 연관될 수 있다. 예를 들어, 계층(2704)은 비디오와 같은 미디어 콘텐츠(2706)와 연관된다. 계층(2710)은 비디오에 대한 사용자 인터페이스 뷰일 수 있는 비 미디어 콘텐츠(2712)와 연관된다. 계층들(2720, 2730, 2740)은 비 미디어 콘텐츠(2712)의 성분들을 형성하는 비 미디어 콘텐츠(2722, 2732, 2742)와 각각 연관된다. 방법(2600)은 데이터 구조의 각각의 계층이 미디어 또는 비 미디어 콘텐츠와 연관되는지를 결정할 것이다. 계층(2704)과 같이 미디어 콘텐츠와 연관되는 임의 계층들은 데이터 구조로부터 제거되고, 개별 메모리 위치에서 처리될 것이다.
일부 실시예들에서, 본 발명의 방법들, 시스템들 및 장치들은 전자 장치, 소비자 장치, 데이터 처리 장치, 데스크탑 컴퓨터, 휴대용 컴퓨터, 무선 장치, 셀룰러 장치, 타블렛 장치, 핸드헬드 장치, 멀티 터치 장치, 멀티 터치 데이터 처리 장치, 이들 장치의 임의 조합 또는 다른 유사한 장치들을 포함하는 다양한 장치들에서 구현될 수 있다. 도 4-6 및 28-33은 이러한 장치들의 몇몇 예를 도시한다.
도 28은 본 발명의 일 실시예에 따른 장치(2800)를 나타낸다. 도 28은 "캔디 바" 스타일을 갖는 전화 구성의 무선 장치를 도시한다. 도 28에서, 무선 장치(2800)는 하우징(2832), 디스플레이 장치(2834), 영숫자 키패드일 수 있는 입력 장치(2836), 스피커(2838), 마이크로폰(2840) 및 안테나(2842)를 포함할 수 있다. 무선 장치(2800)는 근접 센서(2844) 및 가속도계(2846)도 포함할 수 있다. 도 28의 실시예는 더 많거나 적은 센서들을 사용할 수 있으며, 도 28에 도시된 폼 팩터와 다른 폼 팩터를 가질 수 있다는 것을 알 것이다.
디스플레이 장치(2834)는 하우징(2832)의 상부에 위치하는 것으로 도시되고, 입력 장치(2836)는 하우징(2832)의 하부에 위치하는 것으로 도시되어 있다. 안테나(2842)는 하우징(2832)의 상부에서 하우징(2832)으로부터 연장하는 것으로 도시되어 있다. 스피커(2838)는 또한 하우징(2832)의 상부에서 디스플레이 장치(2834) 위에 도시되어 있다. 마이크로폰(2840)은 하우징(2832)의 하부에서 입력 장치(2836) 아래에 도시되어 있다. 스피커(2838) 및 마이크로폰(2840)은 하우징 상의 임의 위치에 배치될 수 있지만, 통상적으로 사용자의 귀 및 입에 맞추어 각각 배치된다.
디스플레이 장치(2834)는 예를 들어 입력들을 수신하는 능력을 포함하지 않는 액정 디스플레이(LCD) 또는 LCD를 또한 포함하는 터치 입력 스크린일 수 있다. 입력 장치(2836)는 예를 들어 버튼, 스위치, 다이얼, 슬라이더, 키 또는 키패드, 네비게이션 패드, 터치 패드, 터치 스크린 등을 포함할 수 있다. 임의의 공지된 스피커, 마이크로폰 및 안테나가 스피커(2838), 마이크로폰(2840) 및 안테나(2842)로 각각 사용될 수 있다.
근접 센서(2844) 및 가속도계(2846)로부터 취득된 데이터는 사용자의 활동들에 대한 정보를 수집하기 위해 함께 결합되거나 단독으로 사용될 수 있다. 근접 센서(2844), 가속도계(2846) 또는 이들 양자로부터의 데이터는 예를 들어 디스플레이 백라이트를 활성화/비활성화하거나, 명령들을 개시하거나, 선택들을 행하거나, 디스플레이에서의 스크롤링, 제스처링, 애니메이팅 또는 다른 움직임을 제어하거나, 입력 장치 설정들을 제어하거나, 또는 장치의 하나 이상의 설정에 대한 다른 변경들을 행하기 위해 사용될 수 있다. 본 발명의 소정 실시예들에서, 장치(2800)는 본 명세서에 설명되는 방법들 중 적어도 일부를 구현하는 데 사용될 수 있다.
도 29는 본 발명의 일 실시예에 따른 장치(2950)를 나타낸다. 장치(2950)는 하우징(2952), 디스플레이/입력 장치(2954), 스피커(2956), 마이크로폰(2958) 및 옵션인 안테나(2960)(하우징의 외부에서 볼 수 있거나, 하우징 내에 숨겨질 수 있다)를 포함할 수 있다. 장치(2950)는 근접 센서(2962) 및 가속도계(2964)도 포함할 수 있다. 장치(2950)는 통합 PDA인 셀룰러 전화 또는 장치 및 통합 미디어 재생기인 셀룰러 전화 또는 장치 및 엔터테인먼트 시스템(예를 들어, 게임 재생용) 및 셀룰러 전화 양자인 셀룰러 전화 또는 장치일 수 있거나, 장치(2950)는 여기에 설명되는 다른 타입의 장치들일 수 있다. 하나의 특정 실시예에서, 장치(2950)는 셀룰러 전화 및 미디어 재생기 및 PDA를 포함할 수 있으며, 이들은 모두 하우징(2952) 내에 포함될 수 있다. 장치(2950)는 정상적인 성인의 손에 맞도록 충분히 작고, 성인에 의해 한 손으로 운반될 수 있도록 충분히 가벼운 폼 팩터를 가질 수 있다. "휴대용"이라는 용어는 장치가 성인 사용자의 손(한 손 또는 양 손) 안에 쉽게 파지될 수 있음을 의미한다는 것을 알 것이며, 예를 들어 랩탑 컴퓨터 및 iPod는 휴대용 장치들이다.
일 실시예에서, 디스플레이/입력 장치(2954)는 LCD와 같은 디스플레이인 것에 더하여 멀티 포인트 터치 입력 스크린을 포함할 수 있다. 일 실시예에서, 멀티 포인트 터치 스크린은 다수의 터치(예를 들어, 디스플레이를 동시에 터치하거나 거의 터치하는 사용자의 얼굴 또는 다수의 손가락으로부터의 디스플레이 상의 블로브(blob)들) 또는 터치 패널의 평면 내의 상이한 위치들에서 동시에 발생하는 근사(near) 터치들(예를 들어, 디스플레이 상의 블로브들)을 검출하고, 다수의 터치 각각에 대해 터치 패널의 평면 상의 터치들의 위치를 나타내는 상이한 신호들을 생성하도록 구성되는 용량 감지 매체이다.
본 발명의 소정 실시예들에서, 장치(2800)는 본 명세서에 설명되는 방법들의 적어도 일부를 구현하는 데 사용될 수 있다.
도 30a 및 30b는 본 발명의 일 실시예에 따른 장치(3070)를 나타낸다. 장치(3070)는 디스플레이 하우징(3089)을 키패드 하우징(3091)에 결합하는 힌지(3087)를 포함하는 셀룰러 전화일 수 있다. 힌지(3087)는 사용자가 셀룰러 전화를 개폐하는 것을 가능하게 하며, 따라서 셀룰러 전화는 도 30a 및 30b에 도시된 2개의 상이한 구성 중 적어도 하나의 구성에 놓일 수 있다. 하나의 특정 실시예에서, 힌지(3087)는 디스플레이 하우징을 키패드 하우징에 회전 가능하게 결합할 수 있다. 구체적으로, 사용자는 셀룰러 전화를 열어서, 셀룰러 전화가 도 30a에 도시된 열린 구성에 놓이게 할 수 있으며, 셀룰러 전화를 닫아서, 셀룰러 전화가 도 30b에 도시된 닫힌 구성에 놓이게 할 수 있다. 키패드 하우징(3091)은 사용자로부터 입력들(예를 들어, 전화 번호 입력 또는 다른 영숫자 입력)을 수신하는 키패드(3095) 및 사용자로부터 음성 입력을 수신하는 마이크로폰(3097)을 포함할 수 있다. 디스플레이 하우징(3089)은 그의 내면에 디스플레이(3093)(예를 들어, LCD), 스피커(3098) 및 근접 센서(3084)를 포함할 수 있으며, 디스플레이 하우징(3089)은 그의 외면에 스피커(3096), 온도 센서(3094), 디스플레이(3088)(예를 들어, 다른 LCD), 주변 광 센서(3092) 및 근접 센서(3084A)를 포함할 수 있다. 따라서, 이 실시예에서, 디스플레이 하우징(3089)은 그의 내면에 제1 근접 센서를, 그의 외면에 제2 근접 센서를 포함할 수 있다.
적어도 소정 실시예들에서, 장치(3070)는 셀룰러 전화, 미디어 재생기, 엔터테인먼트 시스템, PDA, 또는 여기에 설명되는 다른 타입의 장치들과 같은 무선 통신 장치의 기능들 중 하나 이상을 제공하는 컴포넌트들을 포함할 수 있다. 일 실시예의 일 구현에서, 장치(3070)는 MP3 음악 파일들과 같은 MP3 파일들을 재생하는 미디어 재생기와 통합된 셀룰러 전화일 수 있다.
도 4, 5a, 5b, 5c, 6a, 6b, 6c, 6d, 28, 29, 30a 및 30b에 도시된 장치들 각각은 셀룰러 전화와 같은 무선 통신 장치일 수 있으며, 무선 통신을 위한 능력을 제공하는 복수의 컴포넌트를 포함할 수 있다. 도 31은 무선 통신을 위한 능력을 포함하는 무선 장치(3070)의 일 실시예를 나타낸다. 무선 장치(3070)는 도 4, 5a, 5b, 5c, 6a, 6b, 6c, 6d, 28, 29, 30a 및 30b에 도시된 장치들 중 어느 하나 내에 포함될 수 있지만, 도 4, 5a, 5b, 5c, 6a, 6b, 6c, 6d, 28, 29, 30a 및 30b의 장치들의 대안 실시예들은 무선 장치(3070)보다 많거나 적은 컴포넌트를 포함할 수 있다.
무선 장치(3070)는 안테나 시스템(3101)을 포함할 수 있다. 무선 장치(3070)는 또한 안테나 시스템(3101)을 통해 음성, 디지털 데이터 및/또는 미디어 신호들을 전송 및/또는 수신하기 위해 안테나 시스템(3101)에 결합되는 디지털 및/또는 아날로그 무선 주파수(RF) 송수신기(3102)를 포함할 수 있다.
무선 장치(3070)는 또한 디지털 RF 송수신기를 제어하고, 음성, 디지털 데이터 및/또는 미디어 신호들을 관리하기 위한 디지털 처리 시스템(3103)을 포함할 수 있다. 디지털 처리 시스템(3103)은 예를 들어 마이크로프로세서 또는 제어기와 같은 범용 처리 장치일 수 있다. 디지털 처리 시스템(3103)은 또한 소환형 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA) 또는 디지털 신호 프로세서(DSP)와 같은 특수 목적 처리 장치일 수 있다. 디지털 처리 시스템(3103)은 또한 무선 장치(3070)의 다른 컴포넌트들과 인터페이스하기 위한, 이 분야에 공지된 바와 같은, 다른 장치들을 포함할 수 있다. 예를 들어, 디지털 처리 시스템(3103)은 무선 장치(3070)의 다른 컴포넌트들과 인터페이스하기 위한 아날로그/디지털 및 디지털/아날로그 변환기들을 포함할 수 있다. 디지털 처리 시스템(3103)은 오디오 데이터의 파일들과 같은 미디어를 관리하기 위한 범용 또는 특수 목적 처리 장치를 포함할 수도 있는 미디어 처리 시스템(3109)을 포함할 수 있다.
무선 장치(3070)는 또한 무선 장치(3070)를 위한 데이터 및/또는 운영 프로그램들을 저장하기 위해 디지털 처리 시스템에 결합되는 저장 장치(3104)를 포함할 수 있다. 저장 장치(3104)는 예를 들어 임의 타입의 반도체 또는 자기 메모리 장치일 수 있다.
무선 장치(3070)는 또한 사용자 입력들(예컨대, 전화 번호, 이름, 어드레스, 미디어 선택 등)을 수신하기 위해 디지털 처리 시스템(3103)에 결합되는 하나 이상의 입력 장치(3105)를 포함할 수 있다. 입력 장치(3105)는 예를 들어 키패드, 터치패드, 터치 스크린, 디스플레이 장치와 결합된 포인팅 장치 또는 유사한 입력 장치 중 하나 이상일 수 있다.
무선 장치(3070)는 또한 메시지, 전화 호출 정보, 접촉 정보, 사진, 영화 및/또는 타이틀 또는 입력 장치(3105)를 통해 선택되는 미디어들의 다른 지시자들과 같은 정보를 표시하기 위해 디지털 처리 시스템(3103)에 결합되는 적어도 하나의 디스플레이 장치(3106)를 포함할 수 있다. 디스플레이 장치(3106)는 예를 들어 LCD 디스플레이 장치일 수 있다. 일 실시예에서, 디스플레이 장치(3106) 및 입력 장치(3105)는 동일 장치 내에 함께 통합될 수 있다(예를 들어, LCD 디스플레이 장치와 같은 디스플레이 장치와 통합되는 멀티 터치 입력 패널과 같은 터치 스크린 LCD). 디스플레이 장치(3106)는 소정 환경들 하에서 디스플레이 장치(3106)를 조명하기 위한 백라이트(3106a)를 포함할 수 있다. 무선 장치(3070)는 다수의 디스플레이를 포함할 수 있다는 것을 알 것이다.
무선 장치(3070)는 또한 디지털 RF 송수신기(3102), 디지털 처리 시스템(3103), 저장 장치(3104), 입력 장치(3105), 마이크로폰(3105a), 오디오 트랜스듀서(3108), 미디어 처리 시스템(3109), 센서(들)(3110) 및 디스플레이 장치(3106)를 포함하는 시스템의 컴포넌트들에 동작 전력을 공급하기 위한 배터리(3107)를 포함할 수 있다. 배터리(3107)는 예를 들어 재충전 가능 또는 재충전 불가능 리튬 또는 니켈 금속 수소화물 배터리일 수 있다. 무선 장치(3070)는 또한 하나 이상의 스피커를 포함할 수 있는 트랜스듀서(3108) 및 적어도 하나의 마이크로폰(3105a)을 포함할 수 있다. 본 발명의 소정 실시예들에서, 무선 장치(3070)는 본 명세서에 설명된 방법들 중 적어도 일부를 구현하는 데 사용될 수 있다.
도 32는 본 발명의 일 실시예에 따른 장치의 다른 예를 나타낸다. 이 장치(3200)는 마이크로프로세서(3202)와 같은 프로세서, 및 메모리(3204)를 포함할 수 있으며, 이들은 버스를 통해 서로 결합된다. 장치(3200)는 옵션으로서 마이크로프로세서(3202)에 결합되는 캐시(3208)를 포함할 수 있다. 이 장치는 또한 옵션으로서 버스(3206)를 통해 다른 컴포넌트들에 결합되는 디스플레이 제어기 및 디스플레이 장치(3210)를 포함할 수 있다. 하나 이상의 입력/출력 제어기(3212)도 버스(3206)에 결합되어 입출력 장치들(3214)에 대한 인터페이스를 제공하고, 사용자 활동을 감지하는 하나 이상의 센서(3216)에 대한 인터페이스를 제공한다. 버스(3206)는 이 분야에 공지된 바와 같은 다양한 브리지, 제어기 및/또는 어댑터를 통해 서로 접속되는 하나 이상의 버스를 포함한다. 입출력 장치들(3214)은 키패드 또는 키보드 또는 터치 입력 패널과 같은 커서 제어 장치를 포함할 수 있다. 더욱이, 입출력 장치들(3214)은 유선 네트워크용이거나 무선 네트워크용(예를 들어, RF 송수신기)인 네트워크 인터페이스를 포함할 수 있다. 센서들(3216)은 예를 들어 근접 센서 또는 주변 광 센서를 포함하는 여기에 설명된 센서들 중 어느 하나일 수 있다. 장치(3200)의 적어도 소정 구현들에서, 마이크로프로세서(3202)는 하나 이상의 센서(3216)로부터 데이터를 수신하고, 여기에 설명되는 방식으로 그 데이터를 분석할 수 있다. 예를 들어, 데이터는 인공 지능 프로세스를 통해 또는 여기에 설명되는 다른 방법들로 분석될 수 있다. 분석의 결과로서, 마이크로프로세서(3202)는 장치의 하나 이상의 설정의 조정을 자동으로 유발할 수 있다.
본 발명의 소정 실시예들에서, 장치(3200)는 본 명세서에서 설명되는 방법들 중 적어도 일부를 구현하는 데 사용될 수 있다.
도 33a-C는 본 발명의 적어도 소정 실시예들에 따른 장치의 다른 예를 나타낸다. 도 33a는 키보드(3302), 본체(3304), 디스플레이 프레임(3306) 및 디스플레이(3308)를 구비하는 랩탑 장치(3300)를 나타낸다. 랩탑 장치(3300)는 도 33b 및 도 33c에 도시된 바와 같은 타블렛 장치로 변환될 수 있다. 도 33b는 랩탑 장치의 타블렛 장치로의 변환을 도시한다. 디스플레이(3358)를 포함하는 디스플레이 프레임(3356)의 에지가 도 33c에 도시된 바와 같은 타블렛 장치를 형성할 때까지 키보드(3352)의 상부를 가로질러 본체(3354) 내로 슬라이딩된다. 디스플레이(3362) 및 디스플레이 프레임(3366)을 구비한 타블렛 장치는 본체(3360)의 상부에 놓인다.
본 발명의 소정 실시예들에서, 랩탑 장치(3300)는 본 명세서에 설명된 방법들 중 적어도 일부를 구현하는 데 사용될 수 있다.
도 34는 본 발명의 소정 가르침에 따른 흐름도 형태의 애플리케이션 프로그래밍 인터페이스의 상세를 나타낸다. 애플리케이션 프로그래밍 인터페이스는 사용자 인터페이스 소프트웨어가 소프트웨어 애플리케이션과 상호작용하는 환경에서 동작한다. 일부 실시예들에서는, 뷰 체계(hierarchy of views)가 사용자 인터페이스 소프트웨어 내에서 계층 체계의 상부에서 동작한다. API는 블록 3402에서 계층 체계의 상부에서 동작하는 뷰 체계를 구축하는 단계를 포함하는 방법(3400)에서 설명된 바와 같이 동작한다. 방법(3400)은 블록 3404에서 계층 체계에 대한 액세스를 제공하지 않고 뷰 체계에 대한 액세스를 제공하는 단계를 더 포함한다. 애플리케이션은 뷰 체계 아래에서 동작하는 계층 체계에 액세스하지 않고 API를 통해 뷰 체계와 상호작용할 수 있다.
일부 실시예들에서, 플랫폼은 다양한 스크롤링, 제스처링 및 애니메이팅 동작들을 제공한다. 플랫폼은 하드웨어 컴포넌트들 및 운영 체제를 포함한다. 하드웨어 컴포넌트들은 입력 패널에 결합되는 처리 유닛 및 프로세서에 결합되는 메모리를 포함할 수 있다. 운영 체제는 메모리에 저장되고 처리 유닛에 의해 실행되도록 구성되는 하나 이상의 프로그램을 포함한다. 하나 이상의 프로그램은 다양한 스크롤링, 제스처링 및 애니메이팅 동작을 수행하기 위해 애플리케이션 프로그래밍 인터페이스를 통해 함수 호출들 또는 메시지들을 전송하기 위한 다양한 명령어들을 포함한다.
일 실시예에서, 하나 이상의 프로그램은 스크롤의 종료시에 디스플레이 영역에서 스크롤된 영역의 에지를 지난 영역을 볼 수 있는 것에 기초하여 스크롤의 반대 방향으로 스크롤된 영역의 바운스를 유발하기 위해 바운스 호출을 API를 통해 전송하기 위한 명령어들을 포함한다. 일 실시예에서, 하나 이상의 프로그램은 스크롤된 영역이 스크롤에 기초하여 디스플레이 에지를 초과할 때 사전 결정된 최대 변위만큼 스크롤된 영역 상에 러버밴드 효과를 유발하기 위해 러버밴드 호출을 API를 통해 전송하기 위한 명령어들을 포함한다. 일 실시예에서, 하나 이상의 프로그램은 스크롤링을 수직 또는 수평 방향 중 적어도 하나로 록킹하기 위한 스크롤 각도를 설정하기 위해 지향성 스크롤 호출을 API를 통해 전송하기 위한 명령어들을 포함한다.
일 실시예에서, 하나 이상의 명령어는 사용자 입력이 스크롤을 소환하는지를 결정하기 위해 스크롤 이력 호출을 API를 통해 전송하기 위한 명령어들을 포함한다. 일 실시예에서, 하나 이상의 프로그램은 스크롤을 소환하는 사용자 입력에 기초하여 사용자 입력에 대한 감속 팩터를 설정하기 위해 감속 스크롤 호출을 API를 통해 전송하기 위한 명령어들을 포함한다. 일 실시예에서, 하나 이상의 프로그램은 적어도 하나의 스크롤 지시자가 디스플레이 영역의 콘텐츠 에지 또는 디스플레이 에지에 첨부되는지를 결정하기 위해 스크롤 지시자 호출을 API를 통해 전송하기 위한 명령어들을 포함한다.
일부 실시예들에서, 플랫폼은 소프트웨어 코드의 라이브러리를 포함하는 프레임워크를 포함한다. 프레임워크는 플랫폼의 프로그램들과 상호작용하여, 다양한 스크롤링, 제스처링 및 애니메이팅 동작을 수행하기 위한 애플리케이션 프로그래밍 인터페이스들을 제공한다. 프레임워크는 또한 단일 디렉토리에 저장되는 관련 자원들(예를 들어, 이미지, 텍스트 등)을 포함한다.
일 실시예에서, 프레임워크의 라이브러리는 스크롤의 종료시에 디스플레이 영역에서 스크롤된 영역의 에지를 지난 영역을 볼 수 있는 것에 기초하여 스크롤의 반대 방향으로 스크롤된 영역의 바운스를 유발하는 바운스 동작을 지정하기 위한 API를 제공한다. 일 실시예에서, 프레임워크의 라이브러리는 스크롤된 영역이 스크롤에 기초하여 디스플레이 에지를 초과할 때 사전 결정된 최대 변위만큼 스크롤된 영역 상에 러버밴드 효과를 갖는 러버밴드 동작을 지정하기 위한 API를 제공한다. 일 실시예에서, 프레임워크의 라이브러리는 스크롤링을 수직 또는 수평 방향 중 적어도 하나로 록킹하기 위한 스크롤 각도를 설정하는 지향성 스크롤 동작을 지정하기 위한 API를 제공한다.
일 실시예에서, 프레임워크의 라이브러리는 사용자 입력이 스크롤을 소환하는지를 결정하는 스크롤 이력 동작을 지정하기 위한 API를 제공한다. 일 실시예에서, 프레임워크의 라이브러리는 스크롤을 소환하는 사용자 입력에 기초하여 사용자 입력에 대한 감속 팩터를 설정하는 감속 스크롤 동작을 지정하기 위한 API를 제공한다. 일 실시예에서, 프레임워크의 라이브러리는 적어도 하나의 스크롤 지시자가 디스플레이 영역의 콘텐츠 에지 또는 디스플레이 에지에 부착되는지를 결정하는 스크롤 지시자 동작을 지정하기 위한 API를 제공한다.
위의 명세서에서, 본 발명은 그의 특정 실시예들을 참조하여 설명되었다. 아래의 청구항들에 기재된 바와 같은 본 발명의 더 넓은 사상 및 범위로부터 벗어나지 않고 실시예들에 대한 다양한 변경들이 이루어질 수 있음은 명백할 것이다. 따라서, 명세서 및 도면들은 제한적인 것이 아니라 예시적인 것으로 간주되어야 한다.
부록 A
API 소프트웨어 코드
Figure 112012051788411-pat00001
Figure 112012051788411-pat00002
Figure 112012051788411-pat00003
Figure 112012051788411-pat00004
3101: 안테나 시스템
3102: 디지털 및/또는 아날로그 RF 송수신기
3103: 디지털 처리 시스템
3104: 저장장치
3105: 입력 장치(들)
3106: 디스플레이 장치
3106a: 백라이트
3107: 배터리
3108: 오디오 트랜스듀서
3109: 미디어 처리 시스템
3110: 센서(들)

Claims (20)

  1. 데이터 처리 장치의 디스플레이 상에 표시되는 애니메이션들을 위한 컴퓨터 구현 방법으로서,
    그래픽 유닛의 리드로우 인터벌과 연관되는 타이밍 신호에 기초하는 단일 애니메이션 타이머를 제공하는 단계;
    상기 단일 애니메이션 타이머에 사용자 인터페이스 애니메이터를 제공하는 단계; 및
    상기 단일 애니메이션 타이머를 이용하여 복수의 상이한 종류의 애니메이션을 애니메이팅하는 단계를 포함하고,
    상기 복수의 상이한 종류의 애니메이션은 변환, 프레임 및 불투명도 애니메이션들 중 적어도 두 개를 포함하고, 상기 변환 애니메이션은 스케일링 또는 회전 변환을 포함하며, 상기 단일 애니메이션 타이머는 상기 복수의 상이한 종류의 애니메이션을 제어하고 상기 애니메이션 각각에 대한 진행 정보를 기초로 상기 디스플레이를 갱신할지 여부를 판정하는,
    컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 복수의 상이한 종류의 애니메이션은 변환, 프레임 및 불투명도 애니메이션을 포함하고, 상기 복수의 상이한 종류의 애니메이션은 동시에 일어날 수 있는, 컴퓨터 구현 방법.
  3. 제2항에 있어서,
    상기 프레임 애니메이션은 프레임의 리사이징(resizing)을 포함하고, 상기 불투명도 애니메이션은 불투명과 투명 사이에서의 불투명도의 변경을 포함하는, 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 사용자 인터페이스 애니메이터는 변환, 프레임 및 불투명도 애니메이션들을 포함하는 애니메이션의 서브 클래스들을 위한 인터페이스를 지정하는 클래스를 포함하는, 컴퓨터 구현 방법.
  5. 실행시 데이터 처리 시스템으로 하여금,
    그래픽 유닛의 리드로우 인터벌과 연관되는 타이밍 신호에 기초하는 단일 애니메이션 타이머를 제공하는 단계;
    상기 단일 애니메이션 타이머에 사용자 인터페이스 애니메이터를 제공하는 단계; 및
    상기 단일 애니메이션 타이머를 이용하여 복수의 상이한 종류의 애니메이션을 애니메이팅하는 단계를 포함하는 방법을 수행하게 하는 실행가능 프로그램 명령어들을 저장하고,
    상기 복수의 상이한 종류의 애니메이션은 변환, 프레임 및 불투명도 애니메이션들 중 적어도 두 개를 포함하고, 상기 변환 애니메이션은 스케일링 또는 회전 변환을 포함하며, 상기 단일 애니메이션 타이머는 상기 복수의 상이한 종류의 애니메이션을 제어하고 상기 애니메이션 각각에 대한 진행 정보를 기초로 디스플레이를 갱신할지 여부를 판정하는,
    컴퓨터 판독가능 기록 매체.
  6. 제5항에 있어서,
    상기 복수의 상이한 종류의 애니메이션은 변환, 프레임 및 불투명도 애니메이션을 포함하고, 상기 복수의 상이한 종류의 애니메이션은 동시에 일어날 수 있는, 컴퓨터 판독가능 기록 매체.
  7. 제6항에 있어서,
    상기 프레임 애니메이션은 프레임의 리사이징을 포함하고, 상기 불투명도 애니메이션은 불투명과 투명 사이에서의 불투명도의 변경을 포함하는, 컴퓨터 판독가능 기록 매체.
  8. 제5항에 있어서,
    상기 사용자 인터페이스 애니메이터는 변환, 프레임 및 불투명도 애니메이션들을 포함하는 애니메이션의 서브 클래스들을 위한 인터페이스를 지정하는 클래스를 포함하는, 컴퓨터 판독가능 기록 매체.
  9. 소프트웨어 애플리케이션과 상호작용하는 사용자 인터페이스 소프트웨어를 구비한 환경 내의 장치로서,
    그래픽 유닛의 리드로우 인터벌과 연관되는 타이밍 신호에 기초하는 단일 애니메이션 타이머를 제공하기 위한 수단;
    상기 단일 애니메이션 타이머에 사용자 인터페이스 애니메이터를 제공하기 위한 수단; 및
    상기 단일 애니메이션 타이머를 이용하여 복수의 상이한 종류의 애니메이션을 애니메이팅하기 위한 수단을 포함하고,
    상기 복수의 상이한 종류의 애니메이션은 변환, 프레임 및 불투명도 애니메이션들 중 적어도 두 개를 포함하고, 상기 변환 애니메이션은 스케일링 또는 회전 변환을 포함하며, 상기 단일 애니메이션 타이머는 상기 복수의 상이한 종류의 애니메이션을 제어하고 상기 애니메이션 각각에 대한 진행 정보를 기초로 디스플레이를 갱신할지 여부를 판정하는,
    장치.
  10. 제9항에 있어서,
    상기 단일 애니메이션 타이머에 사용자 인터페이스 애니메이터를 제공하기 위한 수단은 사용자 인터페이스 애니메이터를 포함하고, 상기 사용자 인터페이스 애니메이터는 변환, 프레임 및 불투명도 애니메이션들을 포함하는 애니메이션의 서브 클래스들을 위한 인터페이스를 지정하는 클래스를 포함하는, 장치.
  11. 제9항에 있어서,
    상기 복수의 상이한 종류의 애니메이션은 동시에 일어날 수 있는, 장치.
  12. 장치의 디스플레이 상에 표시되는 애니메이션들을 위한 컴퓨터 구현 방법으로서,
    그래픽 유닛의 리드로우 인터벌과 연관되는 타이밍 신호에 기초하는 단일 애니메이션 타이머를 제공하는 단계; 및
    상기 단일 애니메이션 타이머를 이용하여 복수의 상이한 종류의 애니메이션들을 애니메이팅하는 단계를 포함하고,
    상기 복수의 상이한 종류의 애니메이션은 변환, 프레임 및 불투명도 애니메이션들 중 적어도 두 개를 포함하고, 상기 변환 애니메이션은 스케일링 또는 회전 변환을 포함하며, 상기 단일 애니메이션 타이머는 상기 복수의 상이한 종류의 애니메이션을 제어하고 상기 애니메이션 각각에 대한 진행 정보를 기초로 상기 디스플레이를 갱신할지 여부를 판정하는,
    컴퓨터 구현 방법.
  13. 제12항에 있어서,
    상기 복수의 상이한 종류의 애니메이션은 변환, 프레임 및 불투명도 애니메이션을 포함하고, 상기 복수의 상이한 종류의 애니메이션은 동시에 일어날 수 있는, 컴퓨터 구현 방법.
  14. 제12항에 있어서,
    상기 적어도 두 개의 애니메이션은 상기 디스플레이의 상이한 뷰와 연관되는, 컴퓨터 구현 방법.
  15. 실행시 데이터 처리 시스템으로 하여금,
    그래픽 유닛의 리드로우 인터벌과 연관되는 타이밍 신호에 기초하는 단일 애니메이션 타이머를 제공하는 단계; 및
    상기 단일 애니메이션 타이머를 이용하여 복수의 상이한 종류의 애니메이션들을 애니메이팅하는 단계를 포함하는 방법을 수행하게 하는 실행가능 프로그램 명령어들을 저장하고,
    상기 복수의 상이한 종류의 애니메이션은 변환, 프레임 및 불투명도 애니메이션들 중 적어도 두 개를 포함하고, 상기 변환 애니메이션은 스케일링 또는 회전 변환을 포함하며, 상기 단일 애니메이션 타이머는 상기 복수의 상이한 종류의 애니메이션을 제어하고 상기 애니메이션 각각에 대한 진행 정보를 기초로 디스플레이를 갱신할지 여부를 판정하는,
    컴퓨터 판독가능 기록 매체.
  16. 제15항에 있어서,
    상기 복수의 상이한 종류의 애니메이션은 변환, 프레임 및 불투명도 애니메이션을 포함하고, 상기 복수의 상이한 종류의 애니메이션은 동시에 일어날 수 있으며, 상기 적어도 두 개의 애니메이션은 상기 디스플레이의 상이한 뷰와 연관되는, 컴퓨터 판독가능 기록 매체.
  17. 소프트웨어 애플리케이션과 상호작용하는 사용자 인터페이스 소프트웨어를 구비한 환경 내의 장치로서,
    그래픽 유닛의 리드로우 인터벌과 연관되는 타이밍 신호에 기초하는 단일 애니메이션 타이머를 제공하기 위한 수단; 및
    상기 단일 애니메이션 타이머를 이용하여 복수의 상이한 종류의 애니메이션들을 애니메이팅하기 위한 수단을 포함하고,
    상기 복수의 상이한 종류의 애니메이션은 변환, 프레임 및 불투명도 애니메이션들 중 적어도 두 개를 포함하고, 상기 변환 애니메이션은 스케일링 또는 회전 변환을 포함하며, 상기 단일 애니메이션 타이머는 상기 복수의 상이한 종류의 애니메이션을 제어하고 상기 애니메이션 각각에 대한 진행 정보를 기초로 디스플레이를 갱신할지 여부를 판정하는,
    장치.
  18. 제17항에 있어서,
    상기 복수의 상이한 종류의 애니메이션은 변환, 프레임 및 불투명도 애니메이션을 포함하고, 상기 복수의 상이한 종류의 애니메이션은 동시에 일어날 수 있으며, 상기 적어도 두 개의 애니메이션은 상기 디스플레이의 상이한 뷰와 연관되는, 장치.
  19. 장치로서,
    사용자 입력을 수신하도록 구성되는 입력 패널;
    상기 입력 패널과 통합되는 디스플레이 장치;
    상기 입력 패널에 결합되는 하나 이상의 프로세서 - 상기 하나 이상의 프로세서는 적어도 상기 사용자 입력에 기초하여, 객체들을 생성 및 애니메이팅하도록 구성됨 -;
    상기 하나 이상의 프로세서에 결합되고, 상기 객체들을 저장하도록 구성되는 메모리; 및
    하나 이상의 프로그램
    을 포함하고,
    상기 하나 이상의 프로그램은, 상기 메모리에 저장되고, 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며,
    상기 프로그램은,
    상기 입력 패널 상에서 또는 그 근처에서의 사용자 입력의 움직임을 검출하기 위한 명령어들;
    상기 사용자 입력의 검출에 응답하여, 상기 디스플레이 장치 상에 표시된 하나 이상의 뷰를 애니메이팅하기 위한 명령어들;
    그래픽 유닛의 리드로우 인터벌과 연관되는 타이밍 신호에 기초하는 단일 애니메이션 타이머를 제공하기 위한 명령어들;
    상기 단일 타이머에 기초하여, 상기 디스플레이 장치 상에 표시되는 상기 하나 이상의 뷰의 애니메이팅을 완료하기 위한 명령어들
    을 포함하고,
    상기 하나 이상의 뷰의 애니메이션은 변환, 프레임 및 불투명도 애니메이션들 중 적어도 두 개를 포함하고, 상기 변환 애니메이션은 스케일링 또는 회전 변환을 포함하며, 상기 단일 타이머는 상이한 종류의 상기 애니메이션들을 제어하고 상기 애니메이션 각각에 대한 진행 정보를 기초로 상기 디스플레이 장치를 갱신할지 여부를 판정하는,
    장치.
  20. 제19항에 있어서,
    상기 적어도 두 개의 애니메이션은 상기 디스플레이 장치의 상이한 뷰와 연관되고, 상기 단일 타이머는 상기 디스플레이 장치의 리드로우 인터벌에 기초한 타이머를 포함하는, 장치.
KR1020127016846A 2007-01-07 2008-01-04 애니메이션 KR101296052B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/620,723 2007-01-07
US11/620,723 US7903115B2 (en) 2007-01-07 2007-01-07 Animations
PCT/US2008/000103 WO2008085877A1 (en) 2007-01-07 2008-01-04 Animations

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020097016545A Division KR101211787B1 (ko) 2007-01-07 2008-01-04 애니메이션

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020137003599A Division KR101361967B1 (ko) 2007-01-07 2008-01-04 애니메이션

Publications (2)

Publication Number Publication Date
KR20120091403A KR20120091403A (ko) 2012-08-17
KR101296052B1 true KR101296052B1 (ko) 2013-08-12

Family

ID=39386350

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020127016846A KR101296052B1 (ko) 2007-01-07 2008-01-04 애니메이션
KR1020097016545A KR101211787B1 (ko) 2007-01-07 2008-01-04 애니메이션
KR1020137003599A KR101361967B1 (ko) 2007-01-07 2008-01-04 애니메이션

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020097016545A KR101211787B1 (ko) 2007-01-07 2008-01-04 애니메이션
KR1020137003599A KR101361967B1 (ko) 2007-01-07 2008-01-04 애니메이션

Country Status (5)

Country Link
US (7) US7903115B2 (ko)
EP (2) EP2115576A1 (ko)
JP (1) JP5285621B2 (ko)
KR (3) KR101296052B1 (ko)
WO (1) WO2008085877A1 (ko)

Families Citing this family (201)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9722766D0 (en) 1997-10-28 1997-12-24 British Telecomm Portable computers
US7469381B2 (en) 2007-01-07 2008-12-23 Apple Inc. List scrolling and document translation, scaling, and rotation on a touch-screen display
US8225231B2 (en) 2005-08-30 2012-07-17 Microsoft Corporation Aggregation of PC settings
US7877690B2 (en) * 2006-09-20 2011-01-25 Adobe Systems Incorporated Media system with integrated clip views
US8813100B1 (en) 2007-01-07 2014-08-19 Apple Inc. Memory management
US20080168402A1 (en) 2007-01-07 2008-07-10 Christopher Blumenberg Application Programming Interfaces for Gesture Operations
US8656311B1 (en) 2007-01-07 2014-02-18 Apple Inc. Method and apparatus for compositing various types of content
US20080168478A1 (en) * 2007-01-07 2008-07-10 Andrew Platzer Application Programming Interfaces for Scrolling
US7903115B2 (en) 2007-01-07 2011-03-08 Apple Inc. Animations
US7844915B2 (en) 2007-01-07 2010-11-30 Apple Inc. Application programming interfaces for scrolling operations
US7872652B2 (en) * 2007-01-07 2011-01-18 Apple Inc. Application programming interfaces for synchronization
US8643653B2 (en) * 2007-06-08 2014-02-04 Apple Inc. Web-based animation
EP2034399B1 (en) * 2007-09-04 2019-06-05 LG Electronics Inc. Scrolling method of mobile terminal
US8884981B2 (en) * 2007-09-04 2014-11-11 Apple Inc. Dynamically reconfigurable graphics layer system and method
US8645827B2 (en) 2008-03-04 2014-02-04 Apple Inc. Touch event model
US8174502B2 (en) 2008-03-04 2012-05-08 Apple Inc. Touch event processing for web pages
US8717305B2 (en) 2008-03-04 2014-05-06 Apple Inc. Touch event model for web pages
US8416196B2 (en) 2008-03-04 2013-04-09 Apple Inc. Touch event model programming interface
US9372590B2 (en) * 2008-09-26 2016-06-21 Microsoft Technology Licensing, Llc Magnifier panning interface for natural input devices
US8176438B2 (en) * 2008-09-26 2012-05-08 Microsoft Corporation Multi-modal interaction for a screen magnifier
US8411046B2 (en) 2008-10-23 2013-04-02 Microsoft Corporation Column organization of content
US20100107100A1 (en) 2008-10-23 2010-04-29 Schneekloth Jason S Mobile Device Style Abstraction
US8477103B2 (en) 2008-10-26 2013-07-02 Microsoft Corporation Multi-touch object inertia simulation
US8466879B2 (en) * 2008-10-26 2013-06-18 Microsoft Corporation Multi-touch manipulation of application objects
WO2010055895A1 (ja) * 2008-11-11 2010-05-20 日本電気株式会社 携帯端末、携帯端末の頁送り方法、及びプログラム
JP4692625B2 (ja) * 2008-12-26 2011-06-01 ブラザー工業株式会社 入力装置
US8285499B2 (en) 2009-03-16 2012-10-09 Apple Inc. Event recognition
US8566044B2 (en) * 2009-03-16 2013-10-22 Apple Inc. Event recognition
US8566045B2 (en) * 2009-03-16 2013-10-22 Apple Inc. Event recognition
US9684521B2 (en) * 2010-01-26 2017-06-20 Apple Inc. Systems having discrete and continuous gesture recognizers
US9311112B2 (en) * 2009-03-16 2016-04-12 Apple Inc. Event recognition
US8355698B2 (en) 2009-03-30 2013-01-15 Microsoft Corporation Unlock screen
US8175653B2 (en) 2009-03-30 2012-05-08 Microsoft Corporation Chromeless user interface
US8423088B2 (en) * 2009-07-22 2013-04-16 Microsoft Corporation Aggregated, interactive communication timeline
US8441499B2 (en) * 2009-08-05 2013-05-14 Apple Inc. User interface contrast filter
JP5458783B2 (ja) * 2009-10-01 2014-04-02 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
US8799816B2 (en) * 2009-12-07 2014-08-05 Motorola Mobility Llc Display interface and method for displaying multiple items arranged in a sequence
US20110161892A1 (en) * 2009-12-29 2011-06-30 Motorola-Mobility, Inc. Display Interface and Method for Presenting Visual Feedback of a User Interaction
US9417787B2 (en) * 2010-02-12 2016-08-16 Microsoft Technology Licensing, Llc Distortion effects to indicate location in a movable data collection
US20110199318A1 (en) * 2010-02-12 2011-08-18 Microsoft Corporation Multi-layer user interface with flexible parallel movement
TWI447638B (zh) * 2010-02-12 2014-08-01 Esobi Inc The display method of the displacement of the object on the electronic device screen
KR101658239B1 (ko) * 2010-04-15 2016-09-30 삼성전자주식회사 애니메이션 메시지 생성 방법 및 장치
JP5261438B2 (ja) * 2010-06-03 2013-08-14 本田技研工業株式会社 作業手順表示方法及び作業手順表示システム
US10216408B2 (en) 2010-06-14 2019-02-26 Apple Inc. Devices and methods for identifying user interface objects based on view hierarchy
US9189070B2 (en) 2010-09-24 2015-11-17 Sharp Kabushiki Kaisha Content display device, content display method, portable terminal, program, and recording medium
JP5628621B2 (ja) * 2010-10-06 2014-11-19 任天堂株式会社 表示制御プログラム、表示制御システム、表示制御装置、表示制御方法
JP5679169B2 (ja) 2010-10-20 2015-03-04 株式会社ソニー・コンピュータエンタテインメント メニュー表示装置、メニュー表示制御方法及びプログラム
US20120159395A1 (en) 2010-12-20 2012-06-21 Microsoft Corporation Application-launching interface for multiple modes
US8689123B2 (en) 2010-12-23 2014-04-01 Microsoft Corporation Application reporting in an application-selectable user interface
US8612874B2 (en) 2010-12-23 2013-12-17 Microsoft Corporation Presenting an application change through a tile
US9423951B2 (en) 2010-12-31 2016-08-23 Microsoft Technology Licensing, Llc Content-based snap point
EP2661737B1 (en) * 2011-01-05 2018-12-05 NDS Limited Coordinated 2-dimensional and 3-dimensional graphics processing
US9015639B2 (en) * 2011-02-11 2015-04-21 Linkedin Corporation Methods and systems for navigating a list with gestures
US9383917B2 (en) 2011-03-28 2016-07-05 Microsoft Technology Licensing, Llc Predictive tiling
US9298363B2 (en) 2011-04-11 2016-03-29 Apple Inc. Region activation for touch sensitive surface
US8863039B2 (en) 2011-04-18 2014-10-14 Microsoft Corporation Multi-dimensional boundary effects
US9104440B2 (en) 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
US9658766B2 (en) 2011-05-27 2017-05-23 Microsoft Technology Licensing, Llc Edge gesture
US8893033B2 (en) 2011-05-27 2014-11-18 Microsoft Corporation Application notifications
US9104307B2 (en) 2011-05-27 2015-08-11 Microsoft Technology Licensing, Llc Multi-application environment
US9158445B2 (en) 2011-05-27 2015-10-13 Microsoft Technology Licensing, Llc Managing an immersive interface in a multi-application immersive environment
US20120306930A1 (en) * 2011-06-05 2012-12-06 Apple Inc. Techniques for zooming in and out with dynamic content
US8971572B1 (en) 2011-08-12 2015-03-03 The Research Foundation For The State University Of New York Hand pointing estimation for human computer interaction
US20130057587A1 (en) 2011-09-01 2013-03-07 Microsoft Corporation Arranging tiles
US10353566B2 (en) 2011-09-09 2019-07-16 Microsoft Technology Licensing, Llc Semantic zoom animations
US9557909B2 (en) 2011-09-09 2017-01-31 Microsoft Technology Licensing, Llc Semantic zoom linguistic helpers
US20130067420A1 (en) * 2011-09-09 2013-03-14 Theresa B. Pittappilly Semantic Zoom Gestures
US8922575B2 (en) 2011-09-09 2014-12-30 Microsoft Corporation Tile cache
US8933952B2 (en) 2011-09-10 2015-01-13 Microsoft Corporation Pre-rendering new content for an application-selectable user interface
US9146670B2 (en) 2011-09-10 2015-09-29 Microsoft Technology Licensing, Llc Progressively indicating new content in an application-selectable user interface
US9244802B2 (en) 2011-09-10 2016-01-26 Microsoft Technology Licensing, Llc Resource user interface
WO2013039064A1 (ja) * 2011-09-13 2013-03-21 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、表示制御方法、プログラム及び情報記憶媒体
US8751972B2 (en) * 2011-09-20 2014-06-10 Google Inc. Collaborative gesture-based input language
US8884971B2 (en) 2011-09-30 2014-11-11 Microsoft Corporation Animation engine decoupled from animation catalog
US9171098B2 (en) * 2011-09-30 2015-10-27 Microsoft Technology Licensing, Llc Decomposing markup language elements for animation
US20130117698A1 (en) * 2011-10-31 2013-05-09 Samsung Electronics Co., Ltd. Display apparatus and method thereof
US11089134B1 (en) 2011-12-19 2021-08-10 Majen Tech, LLC System, method, and computer program product for coordination among multiple devices
US10776103B2 (en) 2011-12-19 2020-09-15 Majen Tech, LLC System, method, and computer program product for coordination among multiple devices
JP6103807B2 (ja) * 2012-01-10 2017-03-29 キヤノン株式会社 表示制御装置、その制御方法及びプログラム
JP5659193B2 (ja) * 2012-05-25 2015-01-28 京セラドキュメントソリューションズ株式会社 表示入力装置および画像形成装置
USD771639S1 (en) * 2012-09-13 2016-11-15 Apple Inc. Display screen or portion thereof with graphical user interface
JP6100497B2 (ja) * 2012-10-09 2017-03-22 任天堂株式会社 情報処理プログラム、情報処理装置、情報処理システム、および画像表示方法
JP2015537299A (ja) * 2012-10-31 2015-12-24 サムスン エレクトロニクス カンパニー リミテッド ディスプレイ装置及びそのディスプレイ方法
US10057400B1 (en) 2012-11-02 2018-08-21 Majen Tech, LLC Lock screen interface for a mobile device apparatus
US9965162B2 (en) * 2012-11-29 2018-05-08 Facebook, Inc. Scrolling across boundaries in a structured document
US10191643B2 (en) 2012-11-29 2019-01-29 Facebook, Inc. Using clamping to modify scrolling
EP2746918B1 (en) * 2012-12-21 2018-05-23 Orange Fragmented scrolling of a page
US10051103B1 (en) 2013-01-10 2018-08-14 Majen Tech, LLC Screen interface for a mobile device apparatus
US11431834B1 (en) 2013-01-10 2022-08-30 Majen Tech, LLC Screen interface for a mobile device apparatus
US9741150B2 (en) 2013-07-25 2017-08-22 Duelight Llc Systems and methods for displaying representative images
US9459705B2 (en) 2013-03-18 2016-10-04 Facebook, Inc. Tilting to scroll
CN104102422B (zh) * 2013-04-03 2018-05-01 阿里巴巴集团控股有限公司 页面返回操作的方法及装置
US9712577B2 (en) 2013-06-09 2017-07-18 Apple Inc. Device, method, and graphical user interface for sharing content from a respective application
US9733716B2 (en) 2013-06-09 2017-08-15 Apple Inc. Proxy gesture recognizer
US9477393B2 (en) 2013-06-09 2016-10-25 Apple Inc. Device, method, and graphical user interface for displaying application status information
US10120541B2 (en) 2013-06-09 2018-11-06 Apple Inc. Device, method, and graphical user interface for sharing content from a respective application
CN110308853B (zh) * 2013-06-09 2022-07-15 苹果公司 用于移动用户界面对象的设备、方法和图形用户界面
US10481769B2 (en) * 2013-06-09 2019-11-19 Apple Inc. Device, method, and graphical user interface for providing navigation and search functionalities
US10282083B2 (en) 2013-06-09 2019-05-07 Apple Inc. Device, method, and graphical user interface for transitioning between user interfaces
CN104346026B (zh) * 2013-07-29 2019-07-05 阿尔派株式会社 显示操作装置以及显示操作装置的显示方法
JP5505550B1 (ja) * 2013-08-06 2014-05-28 富士ゼロックス株式会社 画像表示装置及びプログラム
CN110850705B (zh) 2013-09-03 2021-06-29 苹果公司 用于可穿戴电子设备的表冠输入
USD761841S1 (en) * 2013-09-03 2016-07-19 Samsung Electronics Co., Ltd. Display screen or portion thereof with animated graphical user interface
US11068128B2 (en) 2013-09-03 2021-07-20 Apple Inc. User interface object manipulations in a user interface
KR102095702B1 (ko) 2013-09-27 2020-04-14 에스케이플래닛 주식회사 이동 단말을 위한 애니메이션 재생 장치 및 방법
USD743998S1 (en) * 2013-11-18 2015-11-24 Salesforce.Com, Inc. Display screen or portion thereof with animated graphical user interface
USD744000S1 (en) * 2013-11-18 2015-11-24 Salesforce.Com, Inc. Display screen or portion thereof with animated graphical user interface
USD746858S1 (en) * 2013-11-18 2016-01-05 Salesforce.Com, Inc. Display screen or portion thereof with animated graphical user interface
USD753703S1 (en) * 2013-11-18 2016-04-12 Salesforce.Com, Inc. Display screen or portion thereof with animated graphical user interface
USD750124S1 (en) * 2013-12-12 2016-02-23 Samsung Electronics Co., Ltd. Display screen or portion thereof with animated graphical user interface
USD767589S1 (en) * 2013-12-16 2016-09-27 Tencent Technology (Shenzhen) Company Limited Display screen portion with animated graphical user interface
USD767588S1 (en) * 2013-12-16 2016-09-27 Tencent Technology (Shenzhen) Company Limited Display screen portion with graphical user interface
JP5924555B2 (ja) * 2014-01-06 2016-05-25 コニカミノルタ株式会社 オブジェクトの停止位置制御方法、操作表示装置およびプログラム
USD762237S1 (en) * 2014-03-17 2016-07-26 Google Inc. Portion of a display panel with an animated computer icon
USD765689S1 (en) * 2014-03-18 2016-09-06 Google Inc. Portion of a display panel with a computer icon
USD767604S1 (en) * 2014-03-18 2016-09-27 Google Inc. Portion of a display panel with a computer icon
USD769913S1 (en) * 2014-03-18 2016-10-25 Google Inc. Portion of a display panel with a computer icon
US10254950B2 (en) 2014-05-30 2019-04-09 Huawei Technologies Co., Ltd. Display method of terminal device and terminal device
US9971500B2 (en) 2014-06-01 2018-05-15 Apple Inc. Displaying options, assigning notification, ignoring messages, and simultaneous user interface displays in a messaging application
USD772906S1 (en) * 2014-06-13 2016-11-29 Beijing Qihoo Technology Company Limited Display screen with animated graphical user interface
WO2015200890A2 (en) 2014-06-27 2015-12-30 Apple Inc. Reduced size user interface
USD758406S1 (en) * 2014-07-02 2016-06-07 Aliphcom Display screen or portion thereof with graphical user interface
US20140372844A1 (en) * 2014-08-14 2014-12-18 Amar Zumkhawala Interface for capturing a digital image with real-time text
WO2016036509A1 (en) 2014-09-02 2016-03-10 Apple Inc. Electronic mail user interface
US20160062571A1 (en) 2014-09-02 2016-03-03 Apple Inc. Reduced size user interface
WO2016036416A1 (en) 2014-09-02 2016-03-10 Apple Inc. Button functionality
USD758423S1 (en) * 2014-09-23 2016-06-07 Google Inc. Display screen with animated graphical user interface
US10572103B2 (en) * 2014-09-30 2020-02-25 Apple Inc. Timeline view of recently opened documents
TWI514242B (zh) * 2014-11-07 2015-12-21 Asustek Comp Inc 觸控螢幕操作方法及電子裝置
USD760263S1 (en) * 2014-12-16 2016-06-28 Jenny Q. Ta Display screen with graphical user interface
US20160202865A1 (en) 2015-01-08 2016-07-14 Apple Inc. Coordination of static backgrounds and rubberbanding
JP5852277B1 (ja) * 2015-03-22 2016-02-03 春佳 西守 コンピュータプログラム、装置および方法
USD913323S1 (en) * 2015-05-29 2021-03-16 Avision Inc. Display screen or portion thereof with graphical user interface
USD812076S1 (en) 2015-06-14 2018-03-06 Google Llc Display screen with graphical user interface for monitoring remote video camera
USD809522S1 (en) 2015-06-14 2018-02-06 Google Inc. Display screen with animated graphical user interface for an alert screen
US10133443B2 (en) 2015-06-14 2018-11-20 Google Llc Systems and methods for smart home automation using a multifunction status and entry point icon
USD797131S1 (en) 2015-06-14 2017-09-12 Google Inc. Display screen with user interface for mode selector icons
US9361011B1 (en) 2015-06-14 2016-06-07 Google Inc. Methods and systems for presenting multiple live video feeds in a user interface
USD803241S1 (en) 2015-06-14 2017-11-21 Google Inc. Display screen with animated graphical user interface for an alert screen
USD796540S1 (en) * 2015-06-14 2017-09-05 Google Inc. Display screen with graphical user interface for mobile camera history having event-specific activity notifications
USD807376S1 (en) 2015-06-14 2018-01-09 Google Inc. Display screen with animated graphical user interface for smart home automation system having a multifunction status
USD788810S1 (en) * 2015-08-12 2017-06-06 Samsung Electronics Co., Ltd. Display screen or portion thereof with animated graphical user interface
USD808403S1 (en) * 2015-09-30 2018-01-23 Apple Inc. Display screen or portion thereof with graphical user interface
JP6046226B2 (ja) * 2015-10-08 2016-12-14 京セラ株式会社 携帯端末装置、プログラムおよび表示制御方法
USD770510S1 (en) * 2015-11-06 2016-11-01 Open Text Sa Ulc Display screen or portion thereof with an animated computer generated falling dialog
CN105630339A (zh) * 2015-12-24 2016-06-01 小米科技有限责任公司 页面控制方法及装置
CN107317909A (zh) * 2016-04-26 2017-11-03 富泰华工业(深圳)有限公司 防止手机误操作的系统及方法
KR20170138667A (ko) * 2016-06-08 2017-12-18 삼성전자주식회사 어플리케이션을 활성화하는 방법 및 이를 제공하는 전자 장치
USD819669S1 (en) * 2016-06-13 2018-06-05 Douglas A. Thomas Display screen or portion thereof with graphical user interface
USD884721S1 (en) * 2016-07-01 2020-05-19 Visa International Service Association Display screen or portion thereof with animated graphical user interface
US10263802B2 (en) 2016-07-12 2019-04-16 Google Llc Methods and devices for establishing connections with remote cameras
USD882583S1 (en) 2016-07-12 2020-04-28 Google Llc Display screen with graphical user interface
USD806741S1 (en) * 2016-07-26 2018-01-02 Google Llc Display screen with animated graphical user interface
US11238290B2 (en) 2016-10-26 2022-02-01 Google Llc Timeline-video relationship processing for alert events
US10386999B2 (en) 2016-10-26 2019-08-20 Google Llc Timeline-video relationship presentation for alert events
USD843398S1 (en) 2016-10-26 2019-03-19 Google Llc Display screen with graphical user interface for a timeline-video relationship presentation for alert events
USD852814S1 (en) * 2017-03-23 2019-07-02 Facebook, Inc. Display screen with a graphical user interface for an advertisement management application
USD839303S1 (en) * 2017-03-24 2019-01-29 Samsung Electronics Co., Ltd. Display screen or portion thereof with transitional graphical user interface
USD864991S1 (en) * 2017-03-27 2019-10-29 Samsung Electronics Co., Ltd. Display screen or portion thereof with transitional graphical user interface
USD835123S1 (en) * 2017-03-31 2018-12-04 Otis Elevator Company Display screen or portion thereof with graphical user interface
USD836659S1 (en) 2017-03-31 2018-12-25 Otis Elevator Company Display screen or portion thereof with graphical user interface
USD836657S1 (en) 2017-03-31 2018-12-25 Otis Elevator Company Display screen or portion thereof with graphical user interface
USD836658S1 (en) 2017-03-31 2018-12-25 Otis Elevator Company Display screen or portion thereof with graphical user interface
US10861029B2 (en) 2017-05-15 2020-12-08 Facebook, Inc. Qualifying comments with poll responses on online systems
US10819921B2 (en) 2017-05-25 2020-10-27 Google Llc Camera assembly having a single-piece cover element
US10352496B2 (en) 2017-05-25 2019-07-16 Google Llc Stand assembly for an electronic device providing multiple degrees of freedom and built-in cables
US10972685B2 (en) 2017-05-25 2021-04-06 Google Llc Video camera assembly having an IR reflector
USD842319S1 (en) * 2017-06-08 2019-03-05 Google Llc Computer display screen with transitional graphical user interface
USD841037S1 (en) * 2017-06-19 2019-02-19 Google Llc Computer display screen with transitional graphical user interface
CN107463367B (zh) * 2017-06-22 2021-05-18 北京星选科技有限公司 转场动画实现方法及装置
USD836662S1 (en) * 2017-06-27 2018-12-25 Google Llc Display screen with animated graphical user interface
US10338799B1 (en) * 2017-07-06 2019-07-02 Spotify Ab System and method for providing an adaptive seek bar for use with an electronic device
USD845320S1 (en) * 2017-07-17 2019-04-09 Google Llc Display screen with transitional graphical user interface
USD845322S1 (en) * 2017-08-30 2019-04-09 Google Llc Display screen or portion thereof with transitional graphical user interface
KR101897704B1 (ko) * 2017-09-25 2018-10-29 넷마블 주식회사 게임 서비스 제공 장치 및 방법
USD852213S1 (en) * 2017-09-28 2019-06-25 Facebook, Inc. Display panel of a programmed computer system with a transitional graphical user interface
USD845323S1 (en) * 2017-09-28 2019-04-09 Facebook, Inc. Display panel of a programmed computer system with a transitional graphical user interface
USD858549S1 (en) * 2017-10-27 2019-09-03 Waymo Llc Display screen portion with graphical user interface
USD967185S1 (en) 2017-10-27 2022-10-18 Waymo Llc Display screen or portion thereof with icon
USD916131S1 (en) 2017-10-27 2021-04-13 Waymo Llc Display screen portion with transitional icon
USD897353S1 (en) 2017-10-27 2020-09-29 Waymo Llc Display screen portion with graphical user interface
USD858550S1 (en) * 2017-10-27 2019-09-03 Waymo Llc Display screen portion with graphical user interface
USD887434S1 (en) 2017-10-27 2020-06-16 Waymo Llc Display screen portion with icon
USD847858S1 (en) 2017-10-27 2019-05-07 Waymo Llc Display screen portion with icon
USD876458S1 (en) * 2017-12-04 2020-02-25 Samsung Electronics Co., Ltd. Display screen or portion thereof with animated graphical user interface
USD876459S1 (en) * 2017-12-04 2020-02-25 Samsung Electronics Co., Ltd. Display screen or portion thereof with animated graphical user interface
USD868810S1 (en) * 2017-12-04 2019-12-03 Samsung Electronics Co., Ltd. Display screen or portion thereof with animated graphical user interface
USD844637S1 (en) 2018-01-17 2019-04-02 Apple Inc. Electronic device with animated graphical user interface
USD861035S1 (en) 2018-03-01 2019-09-24 Google Llc Display screen with animated icon
USD861725S1 (en) * 2018-03-01 2019-10-01 Google Llc Display screen with animated icon
USD916765S1 (en) * 2018-04-11 2021-04-20 Trivver, Inc. Display panel with transitional graphical user interface for augmented reality component
US11435830B2 (en) 2018-09-11 2022-09-06 Apple Inc. Content-based tactile outputs
USD916804S1 (en) * 2018-11-01 2021-04-20 Samsung Electronics Co., Ltd. Display screen or portion thereof with transitional graphical user interface
USD926796S1 (en) * 2018-11-19 2021-08-03 Verizon Patent And Licensing Inc. Display screen with an animated graphical user interface
USD905089S1 (en) * 2018-12-13 2020-12-15 Volvo Car Corporation Display screen or portion thereof with animated graphical user interface
USD902954S1 (en) 2019-01-18 2020-11-24 Apple Inc. Display screen or portion thereof with animated graphical user interface
USD931328S1 (en) * 2020-01-05 2021-09-21 Apple Inc. Display screen or portion thereof with animated icon
USD943629S1 (en) * 2020-05-07 2022-02-15 Beijing Dajia Internet Information Technology Co., Ltd. Display screen or portion thereof with graphical user interface
USD942470S1 (en) 2020-06-21 2022-02-01 Apple Inc. Display or portion thereof with animated graphical user interface
USD931891S1 (en) * 2020-09-15 2021-09-28 Salesforce.Com, Inc. Display screen or portion thereof with animated graphical user interface
USD972595S1 (en) * 2021-06-09 2022-12-13 Lemon Inc. Display screen or portion thereof with an animated graphical user interface

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030132959A1 (en) 2002-01-16 2003-07-17 Simister J. Bret Interface engine providing a continuous user interface
WO2006067711A2 (en) * 2004-12-21 2006-06-29 Koninklijke Philips Electronics N.V. Method and device for displaying animated buttons

Family Cites Families (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0497327B1 (en) 1991-01-29 1999-05-12 Fujitsu Limited An animation display processor
JP2555494B2 (ja) * 1991-11-25 1996-11-20 株式会社ピーエフユー ボタン領域のポインティング表示制御方法
JP3036259B2 (ja) 1992-10-13 2000-04-24 富士通株式会社 画像表示装置
US5404437A (en) 1992-11-10 1995-04-04 Sigma Designs, Inc. Mixing of computer graphics and animation sequences
US5513309A (en) * 1993-01-05 1996-04-30 Apple Computer, Inc. Graphic editor user interface for a pointer-based computer system
US5534893A (en) 1993-12-15 1996-07-09 Apple Computer, Inc. Method and apparatus for using stylus-tablet input in a computer system
US5686940A (en) * 1993-12-24 1997-11-11 Rohm Co., Ltd. Display apparatus
US5880731A (en) * 1995-12-14 1999-03-09 Microsoft Corporation Use of avatars with automatic gesturing and bounded interaction in on-line chat session
IL126142A0 (en) 1996-03-15 1999-05-09 Zapa Digital Art Ltd Programmable computer graphic objects
US5699067A (en) * 1996-06-28 1997-12-16 Hughes Aircraft Company Radar plot display with low CPU loading
US5903902A (en) 1996-09-09 1999-05-11 Design Intelligence, Inc. Design engine with tree and component structure
US5995083A (en) 1996-11-20 1999-11-30 Alps Electric Co., Ltd. Coordinates input apparatus
US5946002A (en) * 1997-02-14 1999-08-31 Novell, Inc. Method and system for image animation
US9098297B2 (en) 1997-05-08 2015-08-04 Nvidia Corporation Hardware accelerator for an object-oriented programming language
US5983190A (en) * 1997-05-19 1999-11-09 Microsoft Corporation Client server animation system for managing interactive user interface characters
US6121981A (en) 1997-05-19 2000-09-19 Microsoft Corporation Method and system for generating arbitrary-shaped animation in the user interface of a computer
US6028602A (en) 1997-05-30 2000-02-22 Telefonaktiebolaget Lm Ericsson Method for managing contents of a hierarchical data model
US6686918B1 (en) * 1997-08-01 2004-02-03 Avid Technology, Inc. Method and system for editing or modifying 3D animations in a non-linear editing environment
US8479122B2 (en) 2004-07-30 2013-07-02 Apple Inc. Gestures for touch sensitive input devices
US7346850B2 (en) 1998-06-12 2008-03-18 Cygnus Systems, Inc. System and method for iconic software environment management
US6329985B1 (en) * 1998-06-30 2001-12-11 Emc Corporation Method and apparatus for graphically displaying mapping of a logical object
US7559039B2 (en) 1998-07-14 2009-07-07 Brad Ridgley Method and device for finding, collecting and acting upon units of information
JP2939473B1 (ja) * 1998-09-22 1999-08-25 コナミ株式会社 ビデオゲーム装置、ビデオゲームにおけるアニメーション表示制御方法及びビデオゲームにおけるアニメーション表示制御プログラムが記録された可読記録媒体
US6985178B1 (en) * 1998-09-30 2006-01-10 Canon Kabushiki Kaisha Camera control system, image pick-up server, client, control method and storage medium therefor
JP4159674B2 (ja) 1998-10-22 2008-10-01 富士通株式会社 オブジェクト指向業務システムおよび方法
US6259436B1 (en) 1998-12-22 2001-07-10 Ericsson Inc. Apparatus and method for determining selection of touchable items on a computer touchscreen by an imprecise touch
US6486896B1 (en) 1999-04-07 2002-11-26 Apple Computer, Inc. Scalable scroll controller
US6219143B1 (en) * 1999-06-16 2001-04-17 Bandag, Incorporated Method and apparatus for analyzing shearogram images by animation
US6791695B2 (en) * 1999-06-16 2004-09-14 Bandag Licensing Corporation Shearographic imaging machine with archive memory for animation data and air handling system
WO2001029702A2 (en) * 1999-10-20 2001-04-26 Koninklijke Philips Electronics N.V. Device and method of browsing an image collection
JP2001134382A (ja) 1999-11-04 2001-05-18 Sony Corp 図形処理装置
US6590595B1 (en) * 2000-02-08 2003-07-08 Sun Microsystems, Inc. Mechanism for providing intuitive scrolling feedback
US7142205B2 (en) 2000-03-29 2006-11-28 Autodesk, Inc. Single gesture map navigation graphical user interface for a personal digital assistant
US7450114B2 (en) 2000-04-14 2008-11-11 Picsel (Research) Limited User interface systems and methods for manipulating and viewing digital documents
US6446083B1 (en) 2000-05-12 2002-09-03 Vastvideo, Inc. System and method for classifying media items
US6924803B1 (en) 2000-05-18 2005-08-02 Vulcan Portals, Inc. Methods and systems for a character motion animation tool
US6677965B1 (en) 2000-07-13 2004-01-13 International Business Machines Corporation Rubber band graphical user interface control
US6931656B1 (en) * 2000-10-11 2005-08-16 Koninklijke Philips Electronics N.V. Virtual creature displayed on a television
US6735583B1 (en) 2000-11-01 2004-05-11 Getty Images, Inc. Method and system for classifying and locating media content
US6839721B2 (en) 2001-01-12 2005-01-04 Hewlett-Packard Development Company, L.P. Integration of a database into file management software for protecting, tracking, and retrieving data
US20040027398A1 (en) * 2001-02-15 2004-02-12 Denny Jaeger Intuitive graphic user interface with universal tools
US6741996B1 (en) 2001-04-18 2004-05-25 Microsoft Corporation Managing user clips
US20020194589A1 (en) 2001-05-08 2002-12-19 Cristofalo Michael Technique for optimizing the delivery of advertisements and other programming segments by making bandwidth tradeoffs
CA2390390C (en) * 2001-07-03 2011-08-30 Research In Motion Limited Graphics stack system and method
US20130076592A1 (en) * 2011-09-27 2013-03-28 Paul E. Reeves Unified desktop docking behavior for visible-to-visible extension
US6972749B2 (en) * 2001-08-29 2005-12-06 Microsoft Corporation Touch-sensitive device for scrolling a document on a display
US6690365B2 (en) 2001-08-29 2004-02-10 Microsoft Corporation Automatic scrolling
US7345671B2 (en) 2001-10-22 2008-03-18 Apple Inc. Method and apparatus for use of rotational user inputs
CA2366183A1 (en) 2001-12-21 2003-06-21 Ibm Canada Limited-Ibm Canada Limitee Dynamic status tree facility
US6690387B2 (en) 2001-12-28 2004-02-10 Koninklijke Philips Electronics N.V. Touch-screen image scrolling system and method
JP3951727B2 (ja) 2002-02-06 2007-08-01 松下電器産業株式会社 情報処理装置
US7466307B2 (en) 2002-04-11 2008-12-16 Synaptics Incorporated Closed-loop sensor on a solid-state object position detector
TWI238348B (en) 2002-05-13 2005-08-21 Kyocera Corp Portable information terminal, display control device, display control method, and recording media
TW591488B (en) 2002-08-01 2004-06-11 Tatung Co Window scrolling method and device thereof
US20040021698A1 (en) 2002-08-05 2004-02-05 Baldwin Amanda K. Intuitive touchscreen interface for a multifunction device and method therefor
US7668842B2 (en) * 2002-10-16 2010-02-23 Microsoft Corporation Playlist structure for large playlists
US7281248B2 (en) * 2002-11-19 2007-10-09 Microsoft Corporation Virtualized and realized user interface controls
US6903927B2 (en) 2002-12-17 2005-06-07 Nokia Corporation Convertible mobile computing device
US7131059B2 (en) * 2002-12-31 2006-10-31 Hewlett-Packard Development Company, L.P. Scalably presenting a collection of media objects
US7117453B2 (en) 2003-01-21 2006-10-03 Microsoft Corporation Media frame object visualization system
US7908554B1 (en) * 2003-03-03 2011-03-15 Aol Inc. Modifying avatar behavior based on user action or mood
US7088374B2 (en) 2003-03-27 2006-08-08 Microsoft Corporation System and method for managing visual structure, timing, and animation in a graphics processing system
US7627343B2 (en) 2003-04-25 2009-12-01 Apple Inc. Media player system
GB2416238A (en) 2003-05-05 2006-01-18 Arbortext Inc System and method for defining specifications for outputting content in multiple formats
US8555165B2 (en) * 2003-05-08 2013-10-08 Hillcrest Laboratories, Inc. Methods and systems for generating a zoomable graphical user interface
US7173623B2 (en) 2003-05-09 2007-02-06 Microsoft Corporation System supporting animation of graphical display elements through animation object instances
EP1644816B1 (en) * 2003-06-20 2016-09-14 Apple Inc. Computer interface having a virtual single-layer mode for viewing overlapping objects
KR100971950B1 (ko) 2003-06-30 2010-07-23 엘지디스플레이 주식회사 액정표시장치용 어레이기판과 제조방법
US8373660B2 (en) 2003-07-14 2013-02-12 Matt Pallakoff System and method for a portable multimedia client
US7411575B2 (en) 2003-09-16 2008-08-12 Smart Technologies Ulc Gesture recognition method and touch system incorporating the same
US7034834B2 (en) 2003-10-24 2006-04-25 Microsoft Corporation Communication protocol for synchronizing animation systems
US7337412B2 (en) 2003-12-15 2008-02-26 International Business Machines Corporation Methods, systems and computer program products for providing multi-dimensional tree diagram graphical user interfaces
US20050193015A1 (en) 2004-02-19 2005-09-01 Sandraic Logic, Llc A California Limited Liability Company Method and apparatus for organizing, sorting and navigating multimedia content
GB2411331A (en) 2004-02-19 2005-08-24 Trigenix Ltd Rendering user interface using actor attributes
US7683904B2 (en) * 2004-05-17 2010-03-23 Pixar Manual component asset change isolation methods and apparatus
JP5172334B2 (ja) 2004-06-17 2013-03-27 アドレア エルエルシー タッチスクリーン上の2本指入力の使用
US7336280B2 (en) * 2004-11-18 2008-02-26 Microsoft Corporation Coordinating animations and media in computer display output
CN100377055C (zh) 2004-12-22 2008-03-26 盛群半导体股份有限公司 触控感应装置的判读方法
US20070185876A1 (en) 2005-02-07 2007-08-09 Mendis Venura C Data handling system
US7385561B2 (en) 2005-02-17 2008-06-10 Galtronics Ltd. Multiple monopole antenna
US8819569B2 (en) 2005-02-18 2014-08-26 Zumobi, Inc Single-handed approach for navigation of application tiles using panning and zooming
US7355595B2 (en) 2005-04-15 2008-04-08 Microsoft Corporation Tactile device for scrolling
US7561159B2 (en) * 2005-05-31 2009-07-14 Magnifi Group Inc. Control of animation timeline
TW200701082A (en) 2005-06-23 2007-01-01 Elan Microelectronics Corp Scroll control method used in the touch panel
US7633076B2 (en) 2005-09-30 2009-12-15 Apple Inc. Automated response to and sensing of user activity in portable devices
US7644364B2 (en) * 2005-10-14 2010-01-05 Microsoft Corporation Photo and video collage effects
US7523135B2 (en) * 2005-10-20 2009-04-21 International Business Machines Corporation Risk and compliance framework
WO2007084852A2 (en) 2006-01-18 2007-07-26 Roxse, Llc Systems and methods for providing sorted search results
US7844661B2 (en) 2006-06-15 2010-11-30 Microsoft Corporation Composition of local media playback with remotely generated user interface
US8086971B2 (en) 2006-06-28 2011-12-27 Nokia Corporation Apparatus, methods and computer program products providing finger-based and hand-based gesture commands for portable electronic device applications
US7956849B2 (en) * 2006-09-06 2011-06-07 Apple Inc. Video manager for portable multifunction device
US7877690B2 (en) * 2006-09-20 2011-01-25 Adobe Systems Incorporated Media system with integrated clip views
US7872652B2 (en) 2007-01-07 2011-01-18 Apple Inc. Application programming interfaces for synchronization
US7903115B2 (en) * 2007-01-07 2011-03-08 Apple Inc. Animations
US7844915B2 (en) * 2007-01-07 2010-11-30 Apple Inc. Application programming interfaces for scrolling operations
US20080168402A1 (en) 2007-01-07 2008-07-10 Christopher Blumenberg Application Programming Interfaces for Gesture Operations
US20080168478A1 (en) 2007-01-07 2008-07-10 Andrew Platzer Application Programming Interfaces for Scrolling
US20080168395A1 (en) 2007-01-07 2008-07-10 Bas Ording Positioning a Slider Icon on a Portable Multifunction Device
US8643653B2 (en) * 2007-06-08 2014-02-04 Apple Inc. Web-based animation
US8151199B2 (en) * 2009-02-09 2012-04-03 AltEgo, LLC Computational delivery system for avatar and background game content
US8335992B2 (en) 2009-12-04 2012-12-18 Nellcor Puritan Bennett Llc Visual indication of settings changes on a ventilator graphical user interface
US8525839B2 (en) * 2010-01-06 2013-09-03 Apple Inc. Device, method, and graphical user interface for providing digital content products
US9733665B2 (en) * 2010-10-01 2017-08-15 Z124 Windows position control for phone applications
US9761035B1 (en) * 2014-03-03 2017-09-12 Mindstream Interface Dynamics, Inc. Dynamic user interfaces
US10395413B2 (en) * 2015-03-03 2019-08-27 Jeremy Flores Dynamic user interfaces

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030132959A1 (en) 2002-01-16 2003-07-17 Simister J. Bret Interface engine providing a continuous user interface
WO2006067711A2 (en) * 2004-12-21 2006-06-29 Koninklijke Philips Electronics N.V. Method and device for displaying animated buttons

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHI '95 Proceedings of the SIGCHI conference on Human factors in computing systems, Pages 67-73 (1995.05.07.) *
Proceedings of Computer Graphics International, pp. 278-286 (1998.06.22.) *

Also Published As

Publication number Publication date
KR20120091403A (ko) 2012-08-17
JP2010515973A (ja) 2010-05-13
KR20130029444A (ko) 2013-03-22
KR20090096752A (ko) 2009-09-14
US8531465B2 (en) 2013-09-10
US20160379399A1 (en) 2016-12-29
US20110109635A1 (en) 2011-05-12
US20080165210A1 (en) 2008-07-10
US20180330530A1 (en) 2018-11-15
EP2115576A1 (en) 2009-11-11
KR101361967B1 (ko) 2014-02-11
US8836707B2 (en) 2014-09-16
US9990756B2 (en) 2018-06-05
WO2008085877A1 (en) 2008-07-17
US10586373B2 (en) 2020-03-10
EP2538325A1 (en) 2012-12-26
US7903115B2 (en) 2011-03-08
US11532113B2 (en) 2022-12-20
US20140063021A1 (en) 2014-03-06
JP5285621B2 (ja) 2013-09-11
US20200226812A1 (en) 2020-07-16
KR101211787B1 (ko) 2012-12-12
US9378577B2 (en) 2016-06-28
US20150035838A1 (en) 2015-02-05

Similar Documents

Publication Publication Date Title
KR101296052B1 (ko) 애니메이션
US11449217B2 (en) Application programming interfaces for gesture operations
US10817162B2 (en) Application programming interfaces for scrolling operations
US10963142B2 (en) Application programming interfaces for scrolling
US9183661B2 (en) Application programming interfaces for synchronization
US9600352B2 (en) Memory management

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160720

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170719

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180718

Year of fee payment: 6