Exemplo n.º 1
0
  private void drawLast() {
    // 标题
    chart.setTitle("数据库统计");
    chart.addSubtitle("(XCL-Charts Demo)");
    chart.getPlotTitle().getTitlePaint().setColor(colorTitalAxes);
    chart.getPlotTitle().getSubtitlePaint().setColor(colorTitalAxes);

    // 激活点击监听
    chart.ActiveListenItemClick();
    chart.showClikedFocus();

    // 扩展横向显示范围,当数据太多时可用这个扩展实际绘图面积
    // chart.getPlotArea().extWidth(200f);

    // 禁用平移模式
    chart.disablePanMode();
    // 限制只能左右滑动
    // chart.setPlotPanMode(XEnum.PanMode.HORIZONTAL);

    // 禁用双指缩放
    // chart.disableScale();

    chart.getDataAxis().show();
    chart.getPlotLegend().show();

    // 当值与轴最小值相等时,不显示轴
    chart.hideBarEqualAxisMin();

    // 批注
    List<AnchorDataPoint> mAnchorSet = new ArrayList<AnchorDataPoint>();

    AnchorDataPoint an1 = new AnchorDataPoint(2, 0, XEnum.AnchorStyle.CIRCLE);
    an1.setAlpha(200);
    an1.setBgColor(Color.rgb(203, 189, 231));
    // an1.setAreaStyle(XEnum.DataAreaStyle.FILL);

    AnchorDataPoint an2 = new AnchorDataPoint(1, 1, XEnum.AnchorStyle.CIRCLE); // CIRCLE
    an2.setBgColor(Color.GRAY);

    AnchorDataPoint an3 = new AnchorDataPoint(0, 2, XEnum.AnchorStyle.RECT); // CAPROUNDRECT  RECT
    an3.setBgColor(Color.rgb(255, 145, 126));

    AnchorDataPoint an4 = new AnchorDataPoint(0, 1, XEnum.AnchorStyle.CAPRECT);
    an4.setBgColor(Color.rgb(255, 145, 126));
    an4.setAnchor("我是批注");

    mAnchorSet.add(an1);
    mAnchorSet.add(an2);
    mAnchorSet.add(an3);
    mAnchorSet.add(an4);
    chart.setAnchorDataPoint(mAnchorSet);

    chart.setApplyBackgroundColor(true);
    chart.setBackgroundColor(
        XEnum.Direction.VERTICAL,
        Color.rgb(69, 117, 180),
        Color.rgb(
            224, 243, 248)); // Color.rgb(17, 162, 255),Color.rgb(163, 219, 254));//Color.WHITE);			
    chart.getBorder().setBorderLineColor(Color.rgb(181, 64, 1));
    chart.getBorder().getLinePaint().setStrokeWidth(3);

    chart.getPlotArea().setBackgroundColor(true, colorPlotArea);

    // chart.getPlotArea().setApplayGradient(true);
    // chart.getPlotArea().setGradientDirection(XEnum.Direction.VERTICAL);
    // chart.getPlotArea().setBeginColor(Color.rgb(116, 174, 210));
    // chart.getPlotArea().setEndColor(Color.WHITE);
    chart.showRoundBorder();

    CustomLineData line1 = new CustomLineData("分界", 60d, Color.rgb(218, 198, 61), 7);
    line1.setCustomLineCap(XEnum.DotStyle.HIDE);
    line1.setLabelHorizontalPostion(Align.RIGHT);
    // line1.setLabelOffset(15);
    line1.getLineLabelPaint().setColor(Color.RED);
    mCustomLineDataset.add(line1);
    chart.setCustomLines(mCustomLineDataset);

    // 饼图
    float pieWH = DensityUtil.dip2px(getContext(), 70);
    float pieX = chart.getPlotArea().getRight() - pieWH * 3;
    chartPie.setChartRange(pieX, pieWH, pieWH, pieWH);
  }
  private void chartRender2() {
    try {
      // 设置绘图区默认缩进px值,留置空间显示Axis,Axistitle....
      int[] ltrb = getBarLnDefaultSpadding();
      chart2.setPadding(mOffset, ltrb[1], ltrb[2], ltrb[3]);

      // 显示边框
      // chart2.showRoundBorder();

      // chart.setApplyBackgroundColor(true);
      chart2.setBackgroundColor(Color.rgb(19, 163, 224));
      chart2.showRoundBorder();

      chart2.getBar().setBarStyle(XEnum.BarStyle.FILL);

      // 标题
      chart2.setTitle("负债率标准: 40%~60%");
      chart2.addSubtitle("(XCL-Charts Demo)");
      chart2.getPlotTitle().getTitlePaint().setColor(axisColor);
      chart2.getPlotTitle().getSubtitlePaint().setColor(axisColor);
      // 数据源
      chart2.setDataSource(chartData2);
      chart2.setCategories(chartLabels);

      // 轴标题
      chart2.getAxisTitle().setLeftTitle("金额");
      chart2.getAxisTitle().setLowerTitle("资产负债率");

      // 数据轴
      chart2.getDataAxis().setAxisMax(2500);
      chart2.getDataAxis().setAxisMin(0);
      chart2.getDataAxis().setAxisSteps(500);

      // 定义数据轴标签显示格式
      chart2
          .getDataAxis()
          .setLabelFormatter(
              new IFormatterTextCallBack() {

                @Override
                public String textFormatter(String value) {
                  // TODO Auto-generated method stub
                  Double tmp = Double.parseDouble(value);
                  DecimalFormat df = new DecimalFormat("#0");
                  String label = df.format(tmp).toString();
                  return (label);
                }
              });

      // 在柱形顶部显示值
      chart2.getBar().setItemLabelVisible(true);
      // 设定格式
      chart2.setItemLabelFormatter(
          new IFormatterDoubleCallBack() {
            @Override
            public String doubleFormatter(Double value) {
              // TODO Auto-generated method stub
              DecimalFormat df = new DecimalFormat("#0");
              String label = df.format(value).toString();
              return label;
            }
          });

      // 让柱子间没空白
      chart2.getBar().setBarInnerMargin(0.f);

      // 轴颜色
      chart2.getDataAxis().getAxisPaint().setColor(axisColor);
      chart2.getCategoryAxis().getAxisPaint().setColor(axisColor);
      chart2.getDataAxis().getTickMarksPaint().setColor(axisColor);
      chart2.getCategoryAxis().getTickMarksPaint().setColor(axisColor);

      chart2.getDataAxis().getTickLabelPaint().setColor(axisColor);
      chart2.getCategoryAxis().getTickLabelPaint().setColor(axisColor);

      chart2.getAxisTitle().getLeftTitlePaint().setColor(axisColor);
      chart2.getAxisTitle().getLowerTitlePaint().setColor(axisColor);

      // 隐藏图例
      chart2.getPlotLegend().hide();
      // chart2.showRoundBorder();

    } catch (Exception e) {
      // TODO Auto-generated catch block
      Log.e(TAG, e.toString());
    }
  }