欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MPAndroidChart 自定義圖表繪制使用實例

 更新時間:2022年09月06日 09:05:50   作者:cxy107750  
這篇文章主要為大家介紹了MPAndroidChart 自定義圖表繪制使用實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

引言

聲明:文中的MPChart代指MPAndroidChart.

本文主要講解LineChart中的三個變種Chart,第一個是漸變的LineGradientChart, 第二個是頻率散點圖,游泳階梯圖,其實MPChart本身也有階梯圖的,DataSet.isDrawSteppedEnabled()這個屬性來控制。

1. LineGradientChart

原理:每個Entry中的 Yvalue 值,計算值所在的顏色區(qū)間,顏色的值少于值范圍。然后繪制線段的時候,drawLine 時設置LineGradient就可以了, colorList跟 entryList 一樣存到DataSet中,dataSet.setColors(colorList) Api 接收colorList。

for (int j = mXBounds.min; j <= mXBounds.range + mXBounds.min; j++) {
   Entry e = dataSet.getEntryForIndex(j);
   ...
  //設置 lineGradient
   mRenderPaint.setShader(new LinearGradient(startX, mLineBuffer[1], endX, mLineBuffer[3],
                            dataSet.getColor(j), dataSet.getColor(j+1), Shader.TileMode.MIRROR));
  //用 lineGradient繪制線段。
  canvas.drawLines(mLineBuffer, 0, pointsPerEntryPair * 2, mRenderPaint);
}

圖1.0 LineGradientChart

2. 散點圖

先看圖1.1 散點圖:

圖1.1 散點圖

這個其實有很多做法的,這里直接用LineChart,然后drawLine 時 Paint 的color transparent,或者直接屬性控制不畫。

設置DataSet.drawCircle(true), 就會繪制 Point點了。三種不同的顏色的Point,DataSetList, 這里自定義了一個CustomDataSet,不同的值區(qū)間用不同的Type,對應不同的顏色即可。

圖1.2 散點圖DataSet自定義

3. SteppedChart

階梯圖就是前后兩個點的連線是90度上去或者下來的,即X軸的值是一定的。這里存在一個問題,MPChart中的X軸、Y軸的值是一一對應的,就是Point(1.0, 4) , Point(1.0, 8) 最終存入 DataSet只能有一個,后來的會將前面的覆蓋。想辦法如何繪制這種SteppedChart呢,就在最后一步,將Transformer轉(zhuǎn)化后的 Buffer里的數(shù)據(jù) currentEntry對應的點的 X值改成 PreCurrentEntry的X值,當他們滿足業(yè)務上的階梯的條件時,或者將PreCurrentEntry的X值的值改成 currentEntry對應的點的 X值。

直接看圖:

圖1.3 SteppedChart

本章節(jié)主要簡單的介紹了幾個LineChart 的變種,稍微修改部分屬性就可以繪制不同需求的圖形。至此,MPChart自定義相關的圖形告一段落,原本計劃的還有些比如RTL相關的,還有曲線圖表的繪制等,有問題需要了解的讀者可以留言或者加筆者的聯(lián)系方式探討。

后續(xù)介紹另外一種脫離MPChart圖表,基于RecycleView繪制的圖表,可實現(xiàn)的功能可以參照蘋果健康里的一些數(shù)據(jù)圖表,無限左右滑動,按下高亮選中滑動,以日、周、月為單位控制 單位區(qū)間里的數(shù)據(jù),可以屬性控制是否單位區(qū)間顯示,可以自動彈回到鄰近的單位區(qū)間邊界等功能。

以上就是MPAndroidChart 自定義圖表繪制使用實例的詳細內(nèi)容,更多關于MPAndroidChart 自定義圖表的資料請關注腳本之家其它相關文章!

相關文章

最新評論