簡單的DragView(一)

2021-09-17 21:32:24 字數 1064 閱讀 1985

寫乙個dra**iew 繼承 view,重寫ontouchevent方法:

首先:int x = (int)event.getrawx();

int y = (int)event.getrawy();

獲得實時的手指座標。

然後,判斷觸控事件:

down:mlastx = x; mlasty = y;

move:offsetx = x - mlastx; offsety = y - mlasty;表示位移量;

此時有兩種方法來實現view隨手指移動:

((view)getparent).scrollby(-offsetx, -offsety);

注意:需要getparent()是因為拖動的是view的content, 而不是view, 所以我們要拿到父view, 拖動他的content, 也就是子view了。

scrollby()代表拖動的位移量,scrollto()是拖動到目標座標;這裡拖動的offsetx,offsety 為負值,是因為 

參考係選擇的差異,移動的是viewgroup, 看到的view在背後的content上;

最後記得把mlastx = x; mlasty = y;更新手指最後停留的位置座標;

如果一開始獲得實時手指座標為

int x = (int)event.getx();

int y = (int)event.gety();

此時就不用更新mlastx,mlasty了;

一 簡單的程式設計

一 基本結構 include using namespace std int main cout hello 基本結構很簡單,下面做乙個輸入輸出的例子 例題 輸入球的半徑,分別計算球的表面積和體積,並輸出 球表面積s 4 pi r 2,體積v 4 3 pi r 3 include using nam...

C RTTI的簡單實現 一

為了加深對rtti的理解,嘗試實現了乙個rtti系統。不過做的比較簡陋,功能如下 typeid的識別利用虛函式實現,利用虛函式的性質可以讓物件輸出真正的型別標誌,而不會被其宣告的型別所改變。為了安全的造型,實現了乙個繼承鏈。在系統內,每個類的宣告裡會加上乙個s rttinode,用於儲存繼承資訊,包...

ThreeJs 一 簡單的嘗試

附webgl教程 webgl 自學網 就好比jquery對js進行封裝一樣。等我們有足夠的開發基礎之後,也可以深入去了解底層知識,不過目前這些知識並不是我們學習的重點。threejs是使用js語言編寫的,屬於webgl第三方庫,threejs提供了很多三維顯示的api,而利用這些api我們就能夠建立...