getX 和getRawX
雖然知道getX
是返回相對控制元件的座標,getRawX
返回的相對螢幕的座標,但是腦子一下子轉不過來,
認為在移動控制元件的時候,使用getX
相減獲得偏移量和getRawX
的應該是一樣的。
實際跑一下發現會有鬼畜效果,後來想了一下getX
在獲得座標的時候 控制元件移動了,就會導致獲得的座標偏移量“不準確”。
簡直太白痴了。。
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
lastX = event.getX();
lastY = event.getY();
lastRawX = event.getRawX();
lastRawY = event.getRawY();
break;
case MotionEvent.ACTION_MOVE:
float disX = event.getX() - lastX;
float disY = event.getY() - lastY;
float disRawX = event.getRawX() - lastRawX;
float disRawY = event.getRawY() - lastRawY;
PtrCLog.d("JellyTextView", "disX ====: " + disX);
PtrCLog.d("JellyTextView", "lastX ====: " + lastX);
PtrCLog.d("JellyTextView", "disRawX ====: " + disRawX);
PtrCLog.d("JellyTextView", "lastRawX====: " + lastRawX);
PtrCLog.d("JellyTextView", "====");
offsetLeftAndRight((int) disRawX);
offsetTopAndBottom((int) disRawY);
lastX = event.getX();
lastY = event.getY();
lastRawX = event.getRawX();
lastRawY = event.getRawY();
break;
case MotionEvent.ACTION_UP:
mScroller.startScroll((int) getX(), (int) getY(), -(int) (getX() - startX),
-(int) (getY() - startY));
invalidate();
break;
}
/**
public final float getRawX () {
return nativeGetRawAxisValue(mNativePtr, AXIS_X, 0, HISTORY_CURRENT);
}
public final float getX(int pointerIndex) {
return nativeGetAxisValue(mNativePtr, AXIS_X, pointerIndex, HISTORY_CURRENT);
}
*/
return super.onTouchEvent(event);
}
相關文章
- 一起原始碼 之 GetX(二) :GetxController和GetX控制元件原始碼Controller控制元件
- flutter + getx 最佳實踐Flutter
- 【安卓筆記】view.getX和view.getTranslationX區別安卓筆記View
- Flutter GetX使用---簡潔的魅力!Flutter
- Flutter狀態管理--Getx學習2Flutter
- Flutter GetX Tag 屬性使用詳解Flutter
- 在 Flutter 使用 GetX 對話方塊Flutter
- Flutter狀態管理--Getx學習1--ObxFlutter
- Flutter GetX系列教程---Cli使用以及常用命令Flutter
- Flutter Getx 01 - 路由、中介軟體、鑑權、傳值、跳轉Flutter路由
- GetX 實現類似微信轉發搜尋多選好友
- Flutter一個輕量且強大的外掛:GetX 之路由管理Flutter路由
- FlutterWinChat基於flutter3.x+bitsdojo_window+getx電腦端仿微信例項Flutter
- 【原始碼篇】Flutter GetX深度剖析 | 我們終將走出自己的路(萬字圖文)原始碼Flutter
- Flutter 到底能不能做 APP, GetX 能實戰麼,我上架了一款APP HelberFlutterAPP
- flutter3-winchat桌面端聊天例項|Flutter3+Dart3+Getx仿微信Exe程式FlutterDart
- GetX程式碼生成IDEA外掛,超詳細功能講解(透過現象看本質)Idea
- flutter3-dylive仿抖音App例項|Flutter3+Getx實戰短影片直播應用FlutterAPP
- flutter3-weos手機OS系統|Flutter3.22+Getx仿ios桌面管理OA應用FlutteriOS
- ../和./和/的區別
- 路徑中./和../和/
- !=和<>
- #和&
- linux中/bin和/sbin和/usr/bin和/usr/sbinLinux
- redis的安裝和啟動和檢測和停止Redis
- 深度解析 Delegate 和 Notification 和 KVO
- ♻️同步和非同步;並行和併發;阻塞和非阻塞非同步並行
- xftp和xshell,xftp和xshell的下載和安裝FTP
- 找工作學習筆記1------=和==、&和&&、|和||的區別筆記
- workman 和swoole 區別 和異同
- @NotEmpty和@NotBlank和@NotNull小結Null
- 檔案路徑問題( ./ 和 ../ 和 @/ )
- csv和excel讀取和下載Excel
- Cookie 和 Session 關係和區別CookieSession
- 堆和棧的概念和區別
- js中的typeof和instanceof和===JS
- hbase和zookeeper的安裝和部署
- JSF和Struts、Tiles Portlets和TapestryJS