2014-01-27 2 views
3

aChartEngine 라이브러리를 사용하여 여러 계열의 선형 차트를 만듭니다. XYChartBuilder.java의 코드를 수정하여 샘플을 만들고 각 계열 아래 특정 색으로 채울 수 있는지 테스트합니다. 각 시리즈 아래 영역을 다른 색으로 채울 때 문제가 있습니다. 계열이 겹치는 영역에는 기본 계열의 선이 표시되지 않습니다. 다음aChartEngine : 여러 색상을 사용하여 시리즈 아래 영역을 페인트 할 때 기본 계열이 표시되지 않습니다.

난 내가에서 지정한 곳 경우

addSeries(1); 
    addData(0, 0); 
    addData(2, 3); 
    addData(4, 0); 

    addSeries(2); 
    addData(2, 0); 
    addData(6, 3); 
    addData(8, 0); 

    addSeries(3); 
    addData(6, 0); 
    addData(9, 3); 
    addData(11, 0); 

전화 시리즈를 작성해야하는 경우 그래프

public void addSeries(int id) { 

    String seriesTitle = "Series " + (mDataset.getSeriesCount() + 1); 

    // create a new series of data 
    XYSeries series = new XYSeries(seriesTitle); 
    mDataset.addSeries(series); 
    mCurrentSeries = series; 

    // create a new renderer for the new series 
    XYSeriesRenderer renderer = new XYSeriesRenderer(); 
    mRenderer.addSeriesRenderer(renderer); 

    // set some renderer properties 
    renderer.setPointStyle(PointStyle.CIRCLE); 
    renderer.setFillPoints(true); 
    renderer.setDisplayChartValues(true); 
    renderer.setDisplayChartValuesDistance(10); 
    renderer.setLineWidth(2); 

    if (id == 1) { 

     FillOutsideLine fill = new FillOutsideLine(FillOutsideLine.Type.BELOW); 
     fill.setColor(Color.BLUE);  
     renderer.addFillOutsideLine(fill); 

     renderer.setColor(Color.BLUE); 
     renderer.setPointStyle(PointStyle.SQUARE); 

    } 

    if (id == 2) { 

     FillOutsideLine fill = new FillOutsideLine(FillOutsideLine.Type.BELOW); 
     fill.setColor(Color.WHITE); 
     renderer.addFillOutsideLine(fill); 

     renderer.setPointStyle(PointStyle.CIRCLE); 
     renderer.setColor(Color.GREEN); 

    } 


    if (id == 3) { 

     FillOutsideLine fill = new FillOutsideLine(FillOutsideLine.Type.BELOW); 
     fill.setColor(Color.YELLOW); 
     renderer.addFillOutsideLine(fill); 

     renderer.setPointStyle(PointStyle.CIRCLE); 
     renderer.setColor(Color.YELLOW); 

    } 


    mCurrentRenderer = renderer; 
    mChartView.repaint(); 

} 

    public void addData(double x, double y) { 

    // add a new data point to the current series 
    mCurrentSeries.add(x, y); 

    // repaint the chart such as the newly added point to be visible 
    mChartView.repaint(); 

} 

의 시리즈와 데이터를 추가하는 데 사용한 코드입니다 addSeries는 FillOutsideLine 객체를 기능하지만 원하는 동작을 얻는 색상을 설정하지 않습니다. 그러나 각 시리즈 아래의 영역은 동일한 색상으로 그려집니다 (파란색 - 기본값 인 것 같습니다).

불행히도 저는 새로운 사람이고 저의 평판이 여전히 낮아서 이미지를 업로드 할 수 없습니다.

도움을 주시면 감사하겠습니다.

감사합니다.

루페.

답변

2

내 문제에 대한 해결책을 찾았으므로 다른 사람이 같은 문제를 겪고있는 경우를 대비하여 목록에 있습니다. 이 문제는 시리즈 아래의 영역을 칠하기 위해 단색을 사용하여 발생했습니다. 반투명 색상으로 테스트 한 결과 문제가 해결되었습니다.

예 :

fill.setColor(Color.parseColor("#5500FF66")); 

L.