Android Touch System

21
Nanik Tolaram [email protected] naniktolaram.com ANDROID TOUCH ANDROID TOUCH SYSTEM SYSTEM

Transcript of Android Touch System

Page 1: Android Touch System

Nanik [email protected]

ANDROID ANDROID TOUCH TOUCH SYSTEMSYSTEM

Page 2: Android Touch System

topic 2topic 3topic 4

Thank Thank You !You !

Page 3: Android Touch System

• Android Platform Engineer@ BlocksGlobal.comAndroid Platform Engineer@ BlocksGlobal.com

• Design ScreenerOS – www.screener.digitalDesign ScreenerOS – www.screener.digital

• Android writer for magazine.odroid.comAndroid writer for magazine.odroid.com

• AOSP Contributor - now and then :)AOSP Contributor - now and then :)

About MeAbout Me

Page 4: Android Touch System

The StackThe Stack

Page 5: Android Touch System

Touch HardwareTouch Hardware• Capacitive / Resistive ScreenCapacitive / Resistive Screen

• Touch Controller (Single / Multi Touch)Touch Controller (Single / Multi Touch)

Page 6: Android Touch System

Touch ScreenTouch Screen

http://i.cmpnet.com/planetanalog/2009/06/C0411-Figure2.gif

Page 7: Android Touch System

Touch ScreenTouch Screen

https://www.ifixit.com/Teardown/Samsung+Galaxy+S6+Teardown/38636

Page 8: Android Touch System

Touch ScreenTouch Screen

https://www.ifixit.com/Teardown/Motorola+Moto+360+Teardown/28891

Page 9: Android Touch System

Touch ScreenTouch Screen

https://www.ifixit.com/Teardown/OnePlus+2+Teardown/45352

Page 10: Android Touch System

Touch ScreenTouch Screen

https://www.ifixit.com/Teardown/Disassembling+Nexus+5+Display+Teardown+-+liquid+damage/32410

Page 11: Android Touch System

Touch ControllerTouch Controller

https://www.ifixit.com/Teardown/Nexus+5+Teardown/19016

Page 12: Android Touch System

Touch ControllerTouch Controller

https://www.ifixit.com/Teardown/Samsung+Galaxy+S6+Teardown/39174

Page 13: Android Touch System

Touch ControllerTouch Controller

https://www.ifixit.com/Teardown/Nexus+9+Teardown/31425

Page 14: Android Touch System

End-to-End FlowEnd-to-End Flow

Linux Kernel

Input Framework Input Queue

View Root

App View

Page 15: Android Touch System

• Single (1 finger) and Multi (>1 finger)Single (1 finger) and Multi (>1 finger)

• “ “Bubbling” of event through UI hierarchyBubbling” of event through UI hierarchy

• ALLALL UI element has method to handle touchUI element has method to handle touch

• Touch = single tap, double tap, long pressTouch = single tap, double tap, long press

• Gesture = fling, scroll, pinch and zoomGesture = fling, scroll, pinch and zoom

Touch & GesturesTouch & Gestures

Page 16: Android Touch System

Touch & Touch & GesturesGestures

http://static.lukew.com/TouchGestureGuide.pdf

Page 17: Android Touch System

Touch EventsTouch Events• Single TouchSingle Touch

– ACTION_DOWNACTION_DOWN– ACTION_MOVEACTION_MOVE– ACTION_UPACTION_UP

• Multi TouchMulti Touch– ACTION_DOWNACTION_DOWN– ACTION_POINTER_DOWNACTION_POINTER_DOWN– ACTION_MOVEACTION_MOVE– ACTION_POINTER_UPACTION_POINTER_UP– ACTION_UPACTION_UP

Page 18: Android Touch System

Touch EventsTouch Events Multi touch ( Pinch & Zoom ) Calculate distance between 2 finger between

ACTION_POINTER_DOWN and ACTION_MOVE

Single touch ( Double tap ) Calculate time between ACTION_DOWN and ACTION_UP

Single touch ( Fling ) Calculate distance between ACTION_DOWN and ACTION_MOVE

(more than 'touch slop')

Page 19: Android Touch System

APIAPI• Common GesturesCommon Gestures

– ScaleGestureDetector (scaling)ScaleGestureDetector (scaling)– GestureDetectorCompat (fling, double tap, GestureDetectorCompat (fling, double tap,

etc) [ backward compatible ]etc) [ backward compatible ]

• Simple case - onTouchListener (from View)Simple case - onTouchListener (from View)

• Always return TRUE on onTouchEventAlways return TRUE on onTouchEvent

• Use getActionMasked()Use getActionMasked()

Page 20: Android Touch System

• google.com/design/spec/patterns/gestures.html google.com/design/spec/patterns/gestures.html

• developer.android.com/training/gestures/index.htmldeveloper.android.com/training/gestures/index.html

ReferencesReferences

Page 21: Android Touch System

Thank YouThank You