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 的資料.但是不同計算機之間交換資料的時候...