android 網速刻度盤 自定義view一

2021-07-23 20:15:30 字數 2143 閱讀 9472

第一次寫部落格,有點小激動,哈哈。

這個是網速顯示刻度盤的乙個功能,我找了很多資料都沒有合適的,就只有自己寫了,

找的資料基本都是只有半個圈的刻度盤,並且刻度顏色變化也很少,都是圓弧在變色,所以自己動手寫了乙個 刻度可以邊顏色 刻度盤也不止半圈。

如圖在輸入框裡面輸入整數,支援0-20480kb/s 也就是20m 部分截圖

下面分別3個部分**,包括自己之前的思路,注釋掉了

private void drawfont(canvas canvas, int center, int radius, rectf oval) ;

string outspeed = ;

//這裡計算的刻度上面的網速字型位置,乙個乙個除錯的,不知道有沒有什麼快速演算法

for (int i= 0 ; i < outspeed.length ; i++)

}}private void drawline(canvas canvas,int center,int radius,rectf oval)

//現在需要將將畫布旋轉回來

canvas.rotate(-rangle * 5, linew, lineh);

for (int i = 0; i < 1; i++)

//現在需要將將畫布旋轉回來

canvas.rotate(rangle * 1, linew, lineh);

//這裡是從左邊開始畫的刻度,為了顯示原因,我才這樣寫的,下面注釋掉的部分是從上面開始畫刻度的

//這裡也是調出來的,我也想在左下角開始的,奈何算不出來位置,一直有偏差,所以選的左邊,左下角那個可以到轉來-45°

if (linedegree == 0)else if (linedegree>0 && linedegree<45)

//現在需要將將畫布旋轉回來

canvas.rotate(rangle * 1, linew, lineh);

}else if (linedegree==45)

//現在需要將將畫布旋轉回來

canvas.rotate(rangle * 1, linew, lineh);

}else if (linedegree>45 && linedegree < 270)

//現在需要將將畫布旋轉回來

canvas.rotate(rangle * 1, linew, lineh);

if (linedegree == 90 || linedegree == 135 || linedegree == 180 || linedegree == 225)

//現在需要將將畫布旋轉回來

canvas.rotate(-rangle * linedegree/rangle-1, linew, lineh);

}else

//現在需要將將畫布旋轉回來

canvas.rotate(-rangle * linedegree/rangle-2, linew, lineh);

}}else if(linedegree == 270)

//現在需要將將畫布旋轉回來

canvas.rotate(rangle * 1, linew, lineh);

//通過旋轉畫布 繪製右面的刻度

for (int i = 0; i < linedegree/rangle-1; i++)

//現在需要將將畫布旋轉回來

canvas.rotate(-rangle * linedegree/rangle-1, linew, lineh);

}}private void drawcircle(canvas canvas,int center,int radius,rectf oval)

自定義view 結合刻度盤學習

先上效果圖 一 view的測量 刻度盤的大小測量 在現實生活中,我們如果要去畫乙個圖形,那麼便要知道它的大小和位置。所以android繪圖時需要我們對view進行測量。android為我們提供了onmeasure 方法來幫助我們去測量乙個view,我們只需要重寫onmeasur 方法,將我們測算長寬...

自定義刻度 Android自定義滑動刻度進度條

做到以上的效果圖,就可以知道,兩個模式,首先,定義相應的自定義屬性,額,沒辦法,上頭要求,所以規範點 新建乙個bar attrs.xml檔案 attr declare styleable resources 然後就是 中取得相應的屬性值和設定預設值 然後修改seekbar的線的顏色和滑動塊的屬性,通...

自定義 View 迴圈滾動刻度控制項

先看效果圖 enter description here loopscaleview 是乙個自定義的刻度尺風格的選值控制項,從上面的 大家可以看到 loopscaleview 的執行效果.可以設定螢幕內顯示的刻度數,也可以設定每乙個刻度代表的值得大小。onvaluechangelistener 刻度...