效果圖
第一張為非會員gif制作的效果圖會有些模糊,第二張為在模擬器顯示的原圖

第一張

第二張
思路
拿到一個自定義view UI是,先要分析怎么一步一步畫出來,在進行代碼編寫
比如這個圓形柱狀圖,從下面幾步開始
- 應(yīng)該畫5根距離相同的灰色坐標(biāo)線,
- 畫柱狀圖三塊文字部分
- 畫柱狀圖灰色部分
- 柱狀圖藍(lán)色部分
- 畫柱狀圖黃色圓圈和黃線部分
- 把柱狀圖數(shù)據(jù)賦值和畫柱狀圖功能分離出來,不在自定義類里,做到項目需要使用時無需看內(nèi)部代碼,直接看外部調(diào)用顯示即可。
主要知識點
圓形柱狀圖有由 頂部半圓+方形+底部半圓組成
邊界值注意點
當(dāng)藍(lán)色長度值小于底部圓半徑時,不畫藍(lán)色方形,只畫底部半圓
顏色漸變效果
startx,starty, 開始漸變的xy軸坐標(biāo),結(jié)束顏色漸變的XY軸坐標(biāo)。
backGradient = new LinearGradient(startx,starty, stopx, stopy,
new int[]{cylinderColorBlueStart, cylinderColorBlueMiddle, cylinderColorBlueMiddleEnd}, null, Shader.TileMode.CLAMP);
bluePaint.setShader(backGradient);
畫圓是根據(jù)方形的四個坐標(biāo)進行繪畫的
方形四個坐標(biāo)相對原點坐標(biāo)位置

image.png
圓起始點0度位置為3點鐘位置,畫到多少度,
負(fù)數(shù)為逆時針方向開始畫起,正數(shù)為順時針開始畫起,
如下圖畫的為水平半圓,則畫的起始坐標(biāo)為矩形高度的1/2開始,若畫的為垂直半圓,其實坐標(biāo)為矩形寬度的1/2

image.png