Achart引擎的PointStyle应该来自Drawables

时间:2014-04-10 07:00:22

标签: android drawable achartengine

我使用了AChartEngine。任何人都可以帮助我从我的绘图中为我的折线图添加pointstyle。

默认情况下,点样式很少,例如PointStyle CIRCLE/ TRIANGLE/SQUARE/DIAMOND/POINT/X... 但我希望我的观点来自我的可绘制文件夹.. 我希望我的图表点看起来像这样。

enter image description here

当我点击图表上的任何一点时,我想要显示32个重复患者的标签..

请帮忙.. 我使用了以下代码

    private void MultipleSeriesGraph() {
    // TODO Auto-generated method stub

    setRendererStyling();
    if (mChartView == null) {
        LinearLayout layout = (LinearLayout) rootView
                .findViewById(R.id.linChart);
        mChartView = ChartFactory.getLineChartView(getActivity(), mDataset,
                mRenderer);
        mRenderer.setSelectableBuffer(100);
        layout.addView(mChartView);
    } else
        mChartView.repaint();

}

private void setRendererStyling() {

    mRenderer.setApplyBackgroundColor(true);
    mRenderer.setBackgroundColor(Color.WHITE);
    mRenderer.setMarginsColor(Color.WHITE);
    mRenderer.setShowLegend(false);

    // for setting background as transparent
    // renderer.setMarginsColor(Color.argb(0x00, 0x01, 0x01, 0x01));
    mRenderer.setAxesColor(Color.WHITE);
    mRenderer.setPointSize(3);
}

private XYMultipleSeriesDataset getDemoDataset() {
    double[] seriesFirstY = { 35, 20, 37, 45, 27, 35, 30 };
    double[] seriesSecondY = { 20, 15, 30, 40, 20, 30, 25 };

    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();

    XYSeries firstSeries = new XYSeries("Repeat");
    for (int i = 0; i < 7; i++)
        firstSeries.add(i, seriesFirstY[i]);
    dataset.addSeries(firstSeries);
    XYSeries secondSeries = new XYSeries("New Patient");
    for (int j = 0; j < 7; j++)
        secondSeries.add(j, seriesSecondY[j]);
    dataset.addSeries(secondSeries);

    return dataset;
}

private XYMultipleSeriesRenderer getDemoRenderer() {
    XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
    renderer.setMargins(new int[] { 0, 30, 0, 30 });

    XYSeriesRenderer r = new XYSeriesRenderer();
    r.setColor(Color.rgb(169, 206, 215));
    r.setPointStyle(PointStyle.CIRCLE);
    r.getPointStyle();
    r.setFillBelowLine(true);
    r.setFillBelowLineColor(Color.rgb(228, 239, 243));
    r.setFillPoints(true);
    renderer.addSeriesRenderer(r);

    r = new XYSeriesRenderer();
    r.setPointStyle(PointStyle.CIRCLE);
    r.setFillBelowLine(true);
    r.setFillBelowLineColor(Color.rgb(255, 240, 211));
    r.setColor(Color.rgb(245, 164, 119));
    r.setFillPoints(true);

    renderer.setYLabelsAlign(Align.RIGHT);
    renderer.setYLabelsColor(0, Color.WHITE);
    renderer.setXLabels(0);
    renderer.addSeriesRenderer(r);

    renderer.setShowGridY(false);
    // renderer.addXTextLabel(1, "2013");
    String[] date = { "Feb 15", "Feb 16", "Feb 17", "Feb 18", "Feb 19",
            "Feb 20", "Feb 21" };
    for (int i = 0; i < date.length; i++) {

        renderer.addXTextLabel(i, date[i]);
    }

    // renderer.setLabelsColor(Color.LTGRAY);
    renderer.isShowLegend();
    renderer.setPanEnabled(false, false);

    return renderer;
}

}

0 个答案:

没有答案