自定義圓並可以移動

2021-08-14 02:30:17 字數 1234 閱讀 3520

public class mycircle2 extends view

public mycircle2(context context, @nullable attributeset attrs)

public mycircle2(context context, @nullable attributeset attrs, int defstyleattr)

@override

protected void ondraw(canvas canvas)

//拖動事件

//拖動的實現原理:

/*** 每個view在螢幕上都有個座標,也就是上下左右邊距,在螢幕上都有(x,y)座標。如果座標移動,那麼view的位置也會移動

* ,這是比較好理解的。

* 我們手指在手機螢幕上滑動的時候,手指的座標也是移動的。

* 我們只需要獲得手指從按下到離開過程中的距離差,然後將距離差加到原來的座標上就可以是實現控制項的移動。

* 如果要實現拖動,那麼在滑動的過程中,不斷的獲取距離差,不斷的加到原來的座標就可以了。

* 注意:

* 這裡的移動是相對於螢幕的,所以我們獲取座標應該是絕對座標,而不是相對座標

* event.getrawx() ---- 獲取絕對x座標

* event.getrawy() ---- 獲取絕對y座標

** event.getx()-------- 獲取相對座標x

* event.gety()-------- 獲取相對座標y**/

//ontouchevent 處理觸控事件

//touch事件:1.按下action_down,2.抬起action_up,3 滑動 action_move 4.取消action_cancel

//獲取觸控點的座標

//絕對座標---相對於螢幕來說

//相對座標---相對於自己

獲取事件

@override

public boolean ontouchevent(motionevent event)

//重新賦值給布局

layout(l,t,r,b);//規定了view的位置

//將lastx,lasty重新賦值

lastx = mx;

lasty = my;

break;

case  motionevent.action_up:

break;

}return true;//返回true代表自己處理事件}}

自定義View填充圓

直接上 吧 其實填充圓的話無非就是兩個圓 乙個實心圓的半徑不停變化 乙個空心圓作為邊框 然後就可以實現了 而且這個 還是可以實現簡單的拖拽的 只需要這乙個類就可以完成效果 主布局只是負責載入這個控制項 不做任何操作 package gaojianyi.bwie.com.myzdy dc import...

自定義view 同心圓

1.建立乙個新的ios object c 類 hypnosisview 繼承uiview。hypnosisview.h import inte ce hypnosisview uiview end 2.實現drawrect 方法。import hypnosisview.h implementatio...

自定義協議 你也可以自定義報頭協議

在學習過計算機網路的課程,我們知道剛開始計算機都是單獨離線工作的,沒有聯網的情況下計算機的資訊共享能力 運算能力都非常有限,後來誕生了計算機網路.有了就是那幾網路,計算機 a 的資訊和資料可以通過網路傳遞到計算機 b,同樣計算機 a 可以獲取到來自計算機 b 的資料.但是不同計算機之間交換資料的時候...