view初識
width = right - left
height = bottom - top
原始碼中會有這些方法獲得這些引數
left = getLeft()
right = getRight()
top = getTop()
bottom = getBottom()
android 3.0之後新增了x,y ,translateX和translateY,他們的關係是
x = left+ translateX
y = top + translateY
view在平移的時候發生變化的是x,y ,translateX和translateY ,left和top並沒有發生變化
getX和getY getRowX和getRowY的區別在於:
getX和getY 是相對於當前這個view的左上角(x,y)的座標
getRowX和getRowY是相對於當前螢幕左上角(0,0)的座標
獲取最小滑動距離常量:
viewconfigration.get(context).getScaledTouchSlop()
速度追蹤:velocityTracker
VelocityTracker velocityTracker = VelocityTracker.obtain();
velocityTracker.addMovement(event);
//100毫秒內的速度
velocityTracker.computeCurrentVelocity(100);
float x = velocityTracker.getXVelocity();//x方向的速度
float y = velocityTracker.getYVelocity();//Y方向的速度
//不再使用的時候記得,回收釋放
velocityTracker.clear();
velocityTracker.recycle();
手勢識別追蹤:GestureDetector,檢測單擊,滑動,長按,雙擊等行為
GestureDetector gestureDetector = new GestureDetector(this);
gestureDetector.setIsLongpressEnabled(false);//解決長按不能拖動的情況
//接管目標view中的event,實現onGestureListener實現onDoubleTapListener
gestureDetector.onTouchEvent(event);
gestureDetector.setOnDoubleTapListener(this);
實現的常用方法包括:
onSingleTapUp 單擊 onDoubleTap雙擊 onScroll滑動 onLongPress長按 onFling快速滑動
彈性滑動 scroller 需要和view的computerscroll配合使用
未完待續。。。
最後歡迎加入Kotlin QQ群,一起討論學習:
歡迎關注 微信公號
相關文章
- 新提案,初識CSS的object-view-box屬性CSSObjectView
- 初·Android View的繪製流程AndroidView
- 初識MybatisMyBatis
- 初識 DockerDocker
- rocketmq初識MQ
- 初識 reduxRedux
- 初識GitGit
- Express初識Express
- Kafka 初識Kafka
- 初識 “HTML”HTML
- 初識GolangGolang
- 初識dockerDocker
- 初識RedisRedis
- 初識GOGo
- 初識promisePromise
- 初識VueVue
- 初識JSJS
- 初識jQueryjQuery
- 初識JavaScriptJavaScript
- 初識WebAssemblyWeb
- 初識機器學習機器學習
- 初識JVMJVM
- 初識HaphoopOOP
- 初識JavaWEBJavaWeb
- 初識HTTPHTTP
- 初識canvasCanvas
- 初識TcpTCP
- webpack初識Web
- 初識ARKit
- 初識CSSCSS
- 初識PHPPHP
- TypeScript 初識TypeScript
- 初識mysqlMySql
- 初識htmlHTML
- 初識WebWeb
- 初識Fink
- 初識PostgreSqlSQL
- AsterixDB初識AST