KLineChart icon indicating copy to clipboard operation
KLineChart copied to clipboard

时间轴挤在一起了

Open alun1 opened this issue 6 years ago • 4 comments

qq 20190124115408

alun1 avatar Jan 24 '19 03:01 alun1

大佬能指教一下吗

alun1 avatar Jan 24 '19 03:01 alun1

可以通过调整列数或者时间轴数据显示

fujianlian avatar Jan 24 '19 05:01 fujianlian

好的谢谢,还有一个问题就是,好像很多情况显示不出来MACD,比如30分钟,60分钟,日K 的数据就不行,而周K,月K是可以显示的

alun1 avatar Jan 24 '19 06:01 alun1

列数已经比较少的情况下,比如5列,第一个和最后一个时间仍然会和挨着的时间重叠,可以修改显示的第一个时间和最后一个时间的位置,在BaseKLineChartView.java文件中drawText方法, 418行-422行是显示第一个时间,修改前

float translateX = xToTranslateX(0);
        if (translateX >= startX && translateX <= stopX) {
            canvas.drawText(getAdapter().getDate(mStartIndex), 0, y, mTextPaint);
        }

修改后

float translateX = xToTranslateX(0);
        if (translateX >= startX && translateX <= stopX) {
            String text = getAdapter().getDate(mStartIndex);
            canvas.drawText(text, 0 - mTextPaint.measureText(text) / 2, y, mTextPaint);
        }

418行-427行是显示最后一个时间 修改前

translateX = xToTranslateX(mWidth);
        if (translateX >= startX && translateX <= stopX) {
            String text = getAdapter().getDate(mStopIndex);
            canvas.drawText(text, mWidth - mTextPaint.measureText(text), y, mTextPaint);
        }

修改后

translateX = xToTranslateX(mWidth);
        if (translateX >= startX && translateX <= stopX) {
            String text = getAdapter().getDate(mStopIndex);
            canvas.drawText(text, mWidth - mTextPaint.measureText(text) / 2, y, mTextPaint);
        }

这样第一个时间和最后一个时间都只显示一半

HowKeung avatar Jul 17 '19 06:07 HowKeung