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

基于RecyclerChart的KLine繪制Volume實現(xiàn)詳解

 更新時間:2023年03月03日 14:35:49   作者:cxy107750  
這篇文章主要為大家介紹了基于RecyclerChart的KLine繪制Volume實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

正文

本章節(jié)是基于RecyclerChart的KLine 繪制第三章節(jié),底部AttacheChart 成交量圖表 Volume的繪制,可以看到直接在原來的KLine MainChart下面繪制的,用的是第二章最后提及的方案,就是跟MainChart的繪制在一個For循環(huán)里處理的,所以也不存在兩表聯(lián)動的問題了。但是這個方案可能會有個隱患,這個后面提及吧,暫時放一放,直接看gif效果圖(沒有設計UI的出圖,暫且看著吧,哈哈)

這幾天習慣了實現(xiàn)功能后,然后隨即就開始記錄,所以比較隨意,以下Volume 實現(xiàn)前列的功能點

底部副圖表 成交量圖的繪制
1. 調(diào)整底部 ContentPaddingBottom,  騰出空間繪制 

2. 底部 XAxisRenderer 考慮是否單獨列出來,調(diào)整XAxisLabel. 

3. 創(chuàng)見 底部 attacheYAxis , 實時動態(tài)調(diào)整max/min,  resetYAixsAttache( ), 傳到繪制的StockChartRender的drawChart() 中去。

4. 繪制底部 AttacheChart, Volume圖表。

待改動:

將ContentPaddingBottom、paddingBottom 從xml中移到 StockAttrs的 default值中去,規(guī)范統(tǒng)一化。

創(chuàng)建AttacheChart YAxis

繪制圖表前,需要給AttcacheChart 前需要給 它框住,所以依賴YAxis的Max/Min值。需要借助 ContentPaddingBottom、paddingBottom值將 繪制的區(qū)域確定,確定繪制區(qū)域時,順便將圖表頂部的 desc 文案"成交量:xxx萬股" drawText(desc) 繪制一下。

Attache YAxis的創(chuàng)建跟 Main YAxis在一個函數(shù)里處理了

緊接著就是實時更換Attache YAxis的Max/Min value, 同樣跟Main YAxis 放在同一個函數(shù)里

Attache Chart繪制

依照文章開頭那里提到的跟Main Chart 基本上在同一個For循環(huán)里處理的,這里基本上只添加了兩個函數(shù)的調(diào)用,而繪制Volume Chart還是調(diào)用原來的drawChart() 函數(shù),只是Params中的RectF的相關的坐標需要單獨計算,這里通過ContentPaddingBottom, paddingBottom等去定位YAxis的上下界,上面的Attache YAxis的繪制有提及到。

drawAttacheTextAndDivide() 是繪制desc 文案的,然后基本上依舊是通過 contentPaddingBottom等去定位位置的

private fun drawAttacheTextAndDivide(canvas: Canvas, parent: RecyclerView, parentStart: Float, parentEnd: Float){
  val yDivideTop = parent.bottom - parent.paddingBottom - mStockAttrs.contentPaddingBottom
  val yDivideBottom = parent.bottom - parent.paddingBottom - mStockAttrs.contentPaddingBottom + 25.dp
  mLineChartPaint.color = mStockAttrs.yAxisLineColor
  mLineChartPaint.strokeWidth = 0.75f
  canvas.drawLine(parentStart, yDivideBottom, parentEnd, yDivideBottom, mLineChartPaint)
  val volumeStr = "成交量:9399萬股"
  val txtWidth = mHighLightDescPaint.measureText(volumeStr)
  val rectLeft = parent.left + 5.dpf
  val rectF = RectF(rectLeft, yDivideTop, rectLeft + txtWidth, yDivideBottom)
  val baseY = TextUtil.getTextBaseY(rectF, mHighLightDescPaint)
  mHighLightDescPaint.color = mStockAttrs.xAxisTxtColor
  mHighLightDescPaint.textSize = mStockAttrs.xAxisTxtSize
  canvas.drawText(volumeStr, rectLeft, baseY, mHighLightDescPaint)
}

然后這里Attache Item RectF的計算單獨列了一個函數(shù)getAttacheStockRectF()

至此,Volume Chart 的繪制到此就結(jié)束了,代碼 加上 碼文花費了大概一上午的時間,整體來說實現(xiàn)起來還是比較簡單的,需要轉(zhuǎn)換了一下思想,不能單單局限在固定的思維里,不過這里提到后續(xù)擴展可能會有些隱患,不過目前是可以的。

下次就進入到縮放環(huán)節(jié)了,縮放限定最大、最?。划斂s小到一個limit Level時需要切換 Main Chart到 Line Chart,帶有底部Fill. 不過先處理正常的縮放吧,這個更新可能會比較久了,加油,鋼巴得,更多關于RecyclerChart KLine繪制Volume的資料請關注腳本之家其它相關文章!

相關文章

  • JAVA操作MongoDB數(shù)據(jù)庫實例教程

    JAVA操作MongoDB數(shù)據(jù)庫實例教程

    MongoDB是一個文檔型數(shù)據(jù)庫,是NOSQL家族中最重要的成員之一,下面這篇文章主要給大家介紹了關于JAVA操作MongoDB數(shù)據(jù)庫的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • SpringBoot整合mybatis-plus進階詳細教程

    SpringBoot整合mybatis-plus進階詳細教程

    本文主要對mybatis-plus的條件構(gòu)造器、AR模式、插件、逆向工程、自定義全局操作、公共字段自動填充等知識點進行講解,需要的朋友參考下吧
    2021-09-09
  • SpringCloud Webflux過濾器增加header傳遞方式

    SpringCloud Webflux過濾器增加header傳遞方式

    這篇文章主要介紹了SpringCloud Webflux過濾器增加header傳遞方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • java中把字符串轉(zhuǎn)成 double的方法

    java中把字符串轉(zhuǎn)成 double的方法

    Java 中可以使用 Double 類中的靜態(tài)方法 parseDouble() 將一個字符串轉(zhuǎn)換為 double 類型的數(shù)值,本文結(jié)合實例代碼對java字符串轉(zhuǎn)成 double詳細講解,需要的朋友參考下吧
    2023-08-08
  • Java中的對象和對象引用實例淺析

    Java中的對象和對象引用實例淺析

    這篇文章主要介紹了Java中的對象和對象引用,實例分析了對象與對象引用的概念與相關使用技巧,需要的朋友可以參考下
    2015-05-05
  • Java編程實現(xiàn)從尾到頭打印鏈表代碼實例

    Java編程實現(xiàn)從尾到頭打印鏈表代碼實例

    這篇文章主要介紹了Java編程實現(xiàn)從尾到頭打印鏈表代碼實例,小編覺得挺不錯的,這里分享給大家,供需要的朋友參考。
    2017-10-10
  • SpringBoot+Spring Security無法實現(xiàn)跨域的解決方案

    SpringBoot+Spring Security無法實現(xiàn)跨域的解決方案

    這篇文章主要介紹了SpringBoot+Spring Security無法實現(xiàn)跨域的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java文件操作實例詳解

    Java文件操作實例詳解

    這篇文章主要為大家詳細介紹了Java文件操作實例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • springboot異步處理@NotBlank或@NotNull注釋校驗不生效問題

    springboot異步處理@NotBlank或@NotNull注釋校驗不生效問題

    這篇文章主要介紹了springboot異步處理@NotBlank或@NotNull注釋校驗不生效問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 淺談SpringBoot集成Redis實現(xiàn)緩存處理(Spring AOP實現(xiàn))

    淺談SpringBoot集成Redis實現(xiàn)緩存處理(Spring AOP實現(xiàn))

    這篇文章主要介紹了淺談SpringBoot集成Redis實現(xiàn)緩存處理(Spring AOP實現(xiàn)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12

最新評論

灵川县| 化德县| 会昌县| 永吉县| 钟祥市| 佛坪县| 宣汉县| 留坝县| 新泰市| 自贡市| 定襄县| 延边| 白朗县| 黑河市| 门源| 浦江县| 屏东县| 定结县| 汝阳县| 琼海市| 郎溪县| 曲麻莱县| 克山县| 唐海县| 丹江口市| 洪湖市| 昔阳县| 冕宁县| 钦州市| 香港| 沁阳市| 峨山| 馆陶县| 新河县| 大城县| 广州市| 乐山市| 江津市| 甘孜县| 昭通市| 嘉禾县|