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

MPAndroidChart 自定義圖表繪制使用實(shí)例

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

引言

聲明:文中的MPChart代指MPAndroidChart.

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

1. LineGradientChart

原理:每個(gè)Entry中的 Yvalue 值,計(jì)算值所在的顏色區(qū)間,顏色的值少于值范圍。然后繪制線段的時(shí)候,drawLine 時(shí)設(shè)置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);
   ...
  //設(shè)置 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. 散點(diǎn)圖

先看圖1.1 散點(diǎn)圖:

圖1.1 散點(diǎn)圖

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

設(shè)置DataSet.drawCircle(true), 就會(huì)繪制 Point點(diǎn)了。三種不同的顏色的Point,DataSetList, 這里自定義了一個(gè)CustomDataSet,不同的值區(qū)間用不同的Type,對(duì)應(yīng)不同的顏色即可。

圖1.2 散點(diǎn)圖DataSet自定義

3. SteppedChart

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

直接看圖:

圖1.3 SteppedChart

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

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

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

相關(guān)文章

最新評(píng)論