tifezh/KChartView

为什么不把k线图和分时图合并到一起?

SaberAlpha opened this issue · 21 comments

为什么不把k线图和分时图合并到一起?

已经在重构的计划中。

我现在打算把分时图和k线图合拼起来,我的思路是drawTranslated()方法里加一个类型判断将蜡烛图替换为曲线图,用view.drawMainLine()方法进行绘制,在实体类加一个成交价格的字段

目前我有更好的方法。谢谢你的建议。

大神,你这个控件在处理tcp长连接传来的实时数据时的响应速度和性能怎样?

k线图和分时图绘制的都是显示区域的图像,没有多余的其他区域绘制,所以在性能速度上是能满足的。

大神,你重构的计划中k线图有没有打算分时间段进行选择显示?

分时间段显示是什么效果

主要是切换请求网络获取以不同时间端(10分,16分...)为单位的开高低收数据集合显示在k线图上,时间段单位越大k线越短,具体的你可以看看火币比特币这个app实现的效果

如果将VOL指标图独立出来,放置于现在的两个图表之间进行联动,有什么方法?

可以照着添加child的思路再添加一个区域,不过用现有的代码不是很好加,需要改动的较多。

请问处理两个图表联动的代码部分在哪一块?

k线图和分时图什么时候能出啊?能先讲下思路么 @tifezh

@kejunlu 你指的说明文档是像博客那样写个源码分析?你想了解哪方面的思路?

@tifezh 合并到K线图的思路

@tifezh 分时图能做成K线图那样可以左右滑动的么

@tifezh K线数据少时,k线是从右边开始画的,应该改成左边。

@plplum 谢谢你的建议。

@tifezh 我试着修改BaseKChartView#drawK方法中的canvas.translate(mTranslateX * mScaleX, 0);语句用到的mTranslateX 值 但未成功

@plplum 你可以试试这个,如果可以,我会加入到后续的更新中。

     /**
     * 获取平移的最小值
     * @return
     */
    private float getMinTranslateX() {
        if (!isFullScreen()) {
            return getMaxTranslateX();
        }
        return -mDataLen + mWidth / mScaleX - mPointWidth / 2;
    }

    /**
     * 获取平移的最大值
     * @return
     */
    private float getMaxTranslateX() {
        return mPointWidth / 2;
    }

@tifezh 可以的 多谢了

@plplum 改成从左边开始这么改也行:
/**
* 获取平移的最小值
* @return
*/
private float getMinTranslateX() {
if (isFullScreen()){
return -mDataLen + mWidth / mScaleX - mPointWidth / 2;
}else {
return 0;
}
}

/**
 * 获取平移的最大值
 * @return
 */
private float getMaxTranslateX() {
    if (!isFullScreen()) {
        return getMinTranslateX();
    }
    return mPointWidth / 2;
}