android 绘制K线图辅助线代码
以下是一个简单的绘制K线图辅助线的代码示例:
// 绘制横向网格线
Paint hGridPaint = new Paint();
hGridPaint.setColor(Color.GRAY);
hGridPaint.setStyle(Paint.Style.STROKE);
hGridPaint.setStrokeWidth(1f);
for (int i = 0; i < 4; i++) {
float y = mViewHeight * i / 4;
canvas.drawLine(0, y, mViewWidth, y, hGridPaint);
}
// 绘制纵向网格线
Paint vGridPaint = new Paint();
vGridPaint.setColor(Color.GRAY);
vGridPaint.setStyle(Paint.Style.STROKE);
vGridPaint.setStrokeWidth(1f);
for (int i = 0; i < mKLineDataList.size(); i++) {
if (i % 20 == 0) {
float x = mViewWidth * i / mKLineDataList.size();
canvas.drawLine(x, 0, x, mViewHeight, vGridPaint);
}
}
// 绘制均线
Paint ma5Paint = new Paint();
ma5Paint.setColor(Color.BLUE);
ma5Paint.setStyle(Paint.Style.STROKE);
ma5Paint.setStrokeWidth(2f);
Path ma5Path = new Path();
for (int i = 0; i < mKLineDataList.size(); i++) {
float x = mViewWidth * i / mKLineDataList.size();
float y = mViewHeight * (1 - mKLineDataList.get(i).getMa5() / mMaxPrice);
if (i == 0) {
ma5Path.moveTo(x, y);
} else {
ma5Path.lineTo(x, y);
}
}
canvas.drawPath(ma5Path, ma5Paint);
Paint ma10Paint = new Paint();
ma10Paint.setColor(Color.RED);
ma10Paint.setStyle(Paint.Style.STROKE);
ma10Paint.setStrokeWidth(2f);
Path ma10Path = new Path();
for (int i = 0; i < mKLineDataList.size(); i++) {
float x = mViewWidth * i / mKLineDataList.size();
float y = mViewHeight * (1 - mKLineDataList.get(i).getMa10() / mMaxPrice);
if (i == 0) {
ma10Path.moveTo(x, y);
} else {
ma10Path.lineTo(x, y);
}
}
canvas.drawPath(ma10Path, ma10Paint);
其中,mViewWidth和mViewHeight分别是视图的宽度和高度,mKLineDataList是K线数据列表,mMaxPrice是最大价格。这段代码绘制了横向和纵向的网格线以及两条均线。可以根据需要修改颜色、宽度等参数
原文地址: https://www.cveoy.top/t/topic/cjsp 著作权归作者所有。请勿转载和采集!