最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

RecyclerBezierChart曲線圖表繪制

 更新時間:2022年12月21日 08:39:05   作者:cxy107750  
這篇文章主要為大家介紹了RecyclerBezierChart曲線圖表繪制示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

曲線圖標RecyclerBezierChart 的繪制

本篇介紹曲線圖標RecyclerBezierChart 的繪制, 同樣圖表的公共部分的繪制這里不再做介紹,主體圖表的繪制邏輯在BezierChartRender類中,其中包含主體曲線的繪制以及底部fill部分的漸變色的繪制。

三階貝塞爾曲線

曲線的繪制用的三階貝塞爾曲線,關于貝塞爾曲線相關的知識讀者可自行Google,Android中的三階貝塞爾曲線的繪制API接口,以下為Path構(gòu)建三階曲線,其中包含兩個Control Points.

這里的繪制邏輯主要參考了MPAndroidChart中的曲線繪制.

首先將Entry的 Y值轉(zhuǎn)換成對應的PointF,這個之前圖表都有同樣的操作,存入originPointFList, 然后通過originPointFList計算對應的 Control Points List, 存入 controList, 其中ControlPoint 這個類筆者自定義的包含了兩個Control Point 點,緊接著Control Point的計算再介紹。

得到originPointFList, controList后,每次迭代套用Path.cubicTo(controlPoint1, controlPoint2, endPoint) API即可,最終得到 cubicPath.

cubicPath

曲線圖底部是漸變Color區(qū)域,這里構(gòu)建了封閉的Path cubicFillPath, 其中包含了cubicPath。

private void drawCubicFill(RecyclerView parent, Canvas c, List<PointF> pointFList, Path spline, float bottom) {
    spline.lineTo(pointFList.get(pointFList.size() - 1).x, bottom);
    spline.lineTo(pointFList.get(0).x, bottom);
    spline.close();
    drawFilledPath(parent, c, spline);
}

整個主體圖表的繪制邏輯大致如上,非常簡單。

下面是剛提到的關于 Control Point 的計算, 這里定義了一個類 ControlPoint, 包含兩個Control Point點。上面計算controList 方法也就作為 它的static 方法放在ControlPoint 中了。

List<ControlPoint> controlList = ControlPoint.getControlPointList(originPointFList, mBarChartAttrs.bezierIntensity);

其中 bezierIntensity 表示控制貝塞爾曲線曲率強度的一個參數(shù)系數(shù)。

對于不是第一個,最后點, 計算公式:

controlPoint.x = cur.x + (next.x - pre.x) * bezierIntensity; Y值同理。

兩個邊界位置Index 邊界的原因稍作變動,具體如下:

至此曲線圖的繪制結(jié)束,非常簡單,最后附上一張RecyclerBezierChart的gif 圖。

本專欄到這里幾個常用的圖表的純繪制介紹完了,接下來大致兩到三章節(jié)介紹圖表動態(tài)相關的邏輯,選中高亮的控制,長按選中滑動跟RecyclerView本身滑動的一個沖突上的解決;控制同一天顯示在一屏時的回彈的控制邏輯。

以上就是RecyclerBezierChart曲線圖表繪制的詳細內(nèi)容,更多關于RecyclerBezierChart圖表繪制的資料請關注腳本之家其它相關文章!

相關文章

  • Android  RecyclerView詳解及簡單實例

    Android RecyclerView詳解及簡單實例

    這篇文章主要介紹了Android RecyclerView詳解及簡單實例的相關資料,需要的朋友可以參考下
    2017-01-01
  • Android自定義控件實現(xiàn)可左右滑動的導航條

    Android自定義控件實現(xiàn)可左右滑動的導航條

    這篇文章主要介紹了Android自定義控件實現(xiàn)可左右滑動的導航條,能響應快速滑動,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-07-07
  • Android中SurfaceFlinger工作原理

    Android中SurfaceFlinger工作原理

    這篇文章介紹了Android中SurfaceFlinger的工作原理,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-12-12
  • android實現(xiàn)上傳本地圖片到網(wǎng)絡功能

    android實現(xiàn)上傳本地圖片到網(wǎng)絡功能

    這篇文章主要為大家詳細介紹了android實現(xiàn)上傳本地圖片到網(wǎng)絡功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Android筆記之:App模塊化及工程擴展的應用

    Android筆記之:App模塊化及工程擴展的應用

    這篇文章是android開發(fā)人員的必備知識,是我特別為大家整理和總結(jié)的,不求完美,但是有用
    2013-04-04
  • Android使用JobScheduler定期推送本地通知實例代碼

    Android使用JobScheduler定期推送本地通知實例代碼

    本篇文章主要介紹了Android使用JobScheduler定期推送本地通知實例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Android反編譯看看手Q口令紅包的實現(xiàn)原理

    Android反編譯看看手Q口令紅包的實現(xiàn)原理

    這篇文章主要介紹了Android反編譯看看手Q口令紅包的實現(xiàn)原理,需要的朋友可以參考下
    2016-02-02
  • 淺談談Android 圖片選擇器

    淺談談Android 圖片選擇器

    近段時間有項目要求寫一個類似于微信發(fā)送圖片時,用來選擇照片的一個圖片瀏覽器。相信有很多網(wǎng)友也有這樣的需求,這里分享給大家
    2015-12-12
  • Kotlin全局捕捉協(xié)程異常方法詳解

    Kotlin全局捕捉協(xié)程異常方法詳解

    協(xié)程是互相協(xié)作的程序,協(xié)程是結(jié)構(gòu)化的。如果把Java的異常處理機制,照搬到Kotlin協(xié)程中,一定會遇到很多的坑。Kotlin協(xié)程中的異常主要分兩大類,協(xié)程取消異常(CancellationException) 其他異常
    2022-08-08
  • Android 中的危險權限詳細整理

    Android 中的危險權限詳細整理

    這篇文章主要介紹了Android 中的危險權限詳細整理的相關資料,Android 中有上百種權限,現(xiàn)在將所有的權限歸為兩類,一類是普通權限,一類的危險權限,危險權限則表示那些可能會觸及到用戶安全隱私或者對設備安全造成影響的權限,需要的朋友可以參考下
    2017-07-07

最新評論

武陟县| 镇赉县| 二连浩特市| 米泉市| 万安县| 拜城县| 民权县| 色达县| 资阳市| 新安县| 广宗县| 亚东县| 连云港市| 左权县| 互助| 安义县| 丽水市| 称多县| 定南县| 大洼县| 五莲县| 嘉义县| 正安县| 彰武县| 孙吴县| 太仆寺旗| 金秀| 九寨沟县| 云阳县| 南阳市| 黔西县| 海门市| 磴口县| 类乌齐县| 平和县| 若羌县| 青神县| 普兰店市| 彰化县| 怀化市| 垦利县|