效果圖
第一張為非會(huì)員gif制作的效果圖會(huì)有些模糊,第二張為在模擬器顯示的原圖
思路
拿到一個(gè)自定義view UI是螺句,先要分析怎么一步一步畫出來虽惭,在進(jìn)行代碼編寫
比如這個(gè)圓形柱狀圖橡类,從下面幾步開始
- 應(yīng)該畫5根距離相同的灰色坐標(biāo)線,
- 畫柱狀圖三塊文字部分
- 畫柱狀圖灰色部分
- 柱狀圖藍(lán)色部分
- 畫柱狀圖黃色圓圈和黃線部分
- 把柱狀圖數(shù)據(jù)賦值和畫柱狀圖功能分離出來芽唇,不在自定義類里顾画,做到項(xiàng)目需要使用時(shí)無需看內(nèi)部代碼,直接看外部調(diào)用顯示即可匆笤。
主要知識(shí)點(diǎn)
圓形柱狀圖有由 頂部半圓+方形+底部半圓組成
邊界值注意點(diǎn)
當(dāng)藍(lán)色長(zhǎng)度值小于底部圓半徑時(shí)研侣,不畫藍(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ù)方形的四個(gè)坐標(biāo)進(jìn)行繪畫的
方形四個(gè)坐標(biāo)相對(duì)原點(diǎn)坐標(biāo)位置