股票行情图:主副图图形数据设置(MPAndroidChart图形设置)

1.1、主图设置 蜡烛 图的方法

(或者BOLL指标设置美国线图candleDataSet.setShowCandleBar(false);)

   /**
     *  设置 蜡烛 图
     * */
    public static CandleDataSet setCandleData(ArrayList 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 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 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 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};//线的颜色数组

你可能感兴趣的:(股票行情图:主副图图形数据设置(MPAndroidChart图形设置))