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

RecyclerBezierChart曲線圖表繪制

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

曲線圖標RecyclerBezierChart 的繪制

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

三階貝塞爾曲線

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

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

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

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

cubicPath

曲線圖底部是漸變Color區(qū)域,這里構建了封閉的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 表示控制貝塞爾曲線曲率強度的一個參數系數。

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

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

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

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

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

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

相關文章

  • Android  RecyclerView詳解及簡單實例

    Android RecyclerView詳解及簡單實例

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

    Android自定義控件實現可左右滑動的導航條

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

    Android中SurfaceFlinger工作原理

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

    android實現上傳本地圖片到網絡功能

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

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

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

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

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

    Android反編譯看看手Q口令紅包的實現原理

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

    淺談談Android 圖片選擇器

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

    Kotlin全局捕捉協程異常方法詳解

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

    Android 中的危險權限詳細整理

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

最新評論

嘉黎县| 芦山县| 师宗县| 泰顺县| 安阳县| 岑巩县| 永胜县| 米易县| 平江县| 泰州市| 东台市| 大同县| 拉孜县| 黄冈市| 长丰县| 武山县| 政和县| 泰兴市| 子洲县| 襄城县| 丰镇市| 兴国县| 双江| 武鸣县| 乌拉特中旗| 兴文县| 乌拉特前旗| 平乐县| 黔西| 桑日县| 馆陶县| 桐梓县| 屯门区| 东台市| 临桂县| 蒲江县| 彰化县| 大埔区| 克拉玛依市| 礼泉县| 汉中市|