股票行情图:主副图图形数据设置(MPAndroidChart图形
2016-08-30 本文已影响659人
d26168ad953a
1.1、主图设置 蜡烛 图的方法
(或者BOLL指标设置美国线图candleDataSet.setShowCandleBar(false);)
/**
* 设置 蜡烛 图
* */
public static CandleDataSet setCandleData(ArrayList<CandleEntry> candleEntries, boolean isMaster) {
CandleDataSet candleDataSet = new CandleDataSet(candleEntries, "KLine");
candleDataSet.setHighlightEnabled(false);// 此处必须得写 避免冲突,否则会导致联动不显示
candleDataSet.setDrawValues(false);
//candleDataSet.setShadowWidth(0.8f);
candleDataSet.setAxisDependency(YAxis.AxisDependency.LEFT); //以左边坐标轴为准 还是以右边坐标轴为基准
candleDataSet.setDecreasingColor(COLOR_CANDLE_DOWN);//open > close.
candleDataSet.setIncreasingColor(COLOR_CANDLE_UP);//open <= close.
if(isMaster) {
//candleDataSet.setCandleType(0);
candleDataSet.setShowCandleBar(true);
candleDataSet.setDecreasingPaintStyle(Paint.Style.FILL);
candleDataSet.setIncreasingPaintStyle(Paint.Style.FILL);
}else {
//candleDataSet.setCandleType(1);
candleDataSet.setShowCandleBar(false);
candleDataSet.setDecreasingPaintStyle(Paint.Style.STROKE);
candleDataSet.setIncreasingPaintStyle(Paint.Style.STROKE);
}
//candleDataSet.setNeutralColor(Color.WHITE);//open == close.
//candleDataSet.setAxisDependency(YAxis.AxisDependency.LEFT);
candleDataSet.setShadowColorSameAsCandle(true);//
return candleDataSet;
}
2.1、设置 柱状 图
/**
* 设置 柱状 图
* */
public static BarDataSet setBar(ArrayList<BarEntry> barEntries) {
BarDataSet barDataSet = new BarDataSet(barEntries, "macd");
barDataSet.setBarSpacePercent(25f); //80f bar空隙 占80%
barDataSet.setDrawValues(false);
barDataSet.setHighlightEnabled(false);// 此处必须得写 避免冲突,否则会导致联动不显示
//barDataSet.setAxisDependency(YAxis.AxisDependency.RIGHT);
//barDataSet.setAxisDependency(YAxis.AxisDependency.LEFT);
//barDataSet.setColors(colors);//com.github.mikephil.charting.renderer.BarChartRenderer类中进行修改,红涨:COLOR_UP,绿跌:COLOR_DOWN//开始注释了这句,颜色设置就不管用了,后来注释了 类中的一块
return barDataSet;
}
3.1、设置 线性 图
/**
* 设置 线性 图
* */
public static LineDataSet setLine(int colorPosition, ArrayList<Entry> lineEntries, boolean isHighLight, boolean isMasterLine) { //COLOR_INDEX_S[]={COLOR_INDEX_BAR,COLOR_INDEX_LINE1,COLOR_INDEX_LINE2,COLOR_INDEX_LINE3};
LineDataSet lineDataSetMa = new LineDataSet(lineEntries, "line" + colorPosition);
if (isHighLight) {
lineDataSetMa.setHighlightEnabled(true);//第一根线 设置高亮为true //而且必须是第一个setLines.add();
//lineDataSetMa.setDrawHighlightIndicators(true);
lineDataSetMa.setDrawVerticalHighlightIndicator(true);
lineDataSetMa.setDrawHorizontalHighlightIndicator(isMasterLine);//是否是主图 ,true主图添加横线 高亮线,false副图不添加高亮横线
lineDataSetMa.setHighLightColor(KLineF.COLOR_LINE_HIGH_LIGHT);//night:Color.parseColor("#c8cfe5") day: Color.parseColor("#202840")
} else {
lineDataSetMa.setHighlightEnabled(false);// 此处必须得写 避免冲突,否则会导致联动不显示
}
//lineDataSetMa.setAxisDependency(YAxis.AxisDependency.RIGHT); //以左边坐标轴为准 还是以右边坐标轴为基准
//lineDataSetMa.setAxisDependency(YAxis.AxisDependency.LEFT); //以左边坐标轴为准 还是以右边坐标轴为基准
lineDataSetMa.setColor(COLOR_INDEX_S[colorPosition]);
lineDataSetMa.setDrawValues(false);
lineDataSetMa.setLineWidth(1f);
lineDataSetMa.setDrawCircles(false);
return lineDataSetMa;
}
4.1、设置 散点 图
(SAR指标才有的,目前这个指标算法没有研究出来)
/**
* 设置 散点 图
* */
public static ScatterDataSet setScatter(int[] colors, ArrayList<Entry> scatterEntries ) {
ScatterDataSet scatterDataSet = new ScatterDataSet(scatterEntries,"scatter");
scatterDataSet.setHighlightEnabled(true);// 设置高亮为true //而且必须是第一个setLines.add();
scatterDataSet.setDrawVerticalHighlightIndicator(true);
scatterDataSet.setDrawHorizontalHighlightIndicator(false);//是否是主图 ,true主图添加横线 高亮线,false副图不添加高亮横线
scatterDataSet.setHighLightColor(KLineF.COLOR_LINE_HIGH_LIGHT);//night:Color.parseColor("#c8cfe5") day: Color.parseColor("#202840")
//scatterDataSet.setAxisDependency(YAxis.AxisDependency.LEFT); //以左边坐标轴为准 还是以右边坐标轴为基准
scatterDataSet.setDrawValues(false);
scatterDataSet.setColors(colors);
//scatterDataSet.setColor(color);
scatterDataSet.setScatterShapeSize(4f);//集合的大小密度像素绘制的scattershape会。这只适用于非自定义形状。
scatterDataSet.setScatterShape(ScatterChart.ScatterShape.CIRCLE);//设置在值为的位置上绘制的形状。//SQUARE, CIRCLE, TRIANGLE, CROSS, X,--->正方形,圆,三角形,十字,X,
//scatterDataSet.setScatterShapeHoleRadius(1f);//设置形状孔的半径(适用于正方形、圆形和三角形) *将此设置为< = 0以去除漏洞。
//scatterDataSet.setScatterShapeHoleColor(Color.TRANSPARENT);
return scatterDataSet;
}
颜色值设置
public static final int COLOR_CANDLE_UP = 0xffe32222;//Color.parseColor("#FFe32222");//红色 上涨的颜色值
public static final int COLOR_CANDLE_DOWN = 0xff119e11;//Color.parseColor("#FF119e11");//绿色 下跌的颜色值
public static final int COLOR_INDEX_LINE1 = Color.parseColor("#ffae00"); //暗黄 指标的划线的第 1 根线的颜色值
public static final int COLOR_INDEX_LINE2 = Color.parseColor("#05bbf2"); //天蓝 指标的划线的第 2 根线的颜色值
public static final int COLOR_INDEX_LINE3 = Color.parseColor("#f847bd"); //紫红 指标的划线的第 3 根线的颜色值
public static final int COLOR_INDEX_LINE4 = Color.parseColor("#e32222"); //大红 指标的划线的第 3 根线的颜色值
public static final int COLOR_INDEX_S[] = new int[]{
COLOR_INDEX_LINE4,COLOR_INDEX_LINE1,COLOR_INDEX_LINE2,
COLOR_INDEX_LINE3,COLOR_INDEX_LINE4};//线的颜色数组