2014-11-25 83 views
0

有什麼方法可以改變achartengine折線圖的線條點顏色從白色到黑色?安卓achartengine,改變點價值顏色

在下面的圖像中,我想將顏色2700,2500等從白色變爲黑色。

這裏是我的代碼:

private void openChart() { 

    int count = 5; 
    Date[] dt = new Date[5]; 
    for (int i = 0; i < count; i++) { 
     GregorianCalendar gc = new GregorianCalendar(2014, 10, i + 1); 
     dt[i] = gc.getTime(); 
    } 

    int[] visits = {2000, 2500, 2700, 2100, 2800}; 

    // Creating TimeSeries for Visits 
    TimeSeries visitsSeries = new TimeSeries("BMR Rate"); 

    // Adding data to Visits Series 
    for (int i = 0; i < dt.length; i++) 
     visitsSeries.add(dt[i], visits[i]); 

    // Creating a dataset to hold each series 
    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); 

    // Adding Visits Series to the dataset 
    dataset.addSeries(visitsSeries); 

    // Creating XYSeriesRenderer to customize visitsSeries 
    XYSeriesRenderer visitsRenderer = new XYSeriesRenderer(); 
    visitsRenderer.setColor(Color.WHITE); 
    visitsRenderer.setPointStyle(PointStyle.SQUARE); 

    visitsRenderer.setFillPoints(true); 
    visitsRenderer.setLineWidth(3); 
    visitsRenderer.setDisplayChartValues(true); 


    XYMultipleSeriesRenderer multiRenderer = new XYMultipleSeriesRenderer(); 

    multiRenderer.setChartTitle("Body Mass Index"); 
    // multiRenderer.setMargins(new int[]{0, 0, 0, 10}); 
    multiRenderer.setApplyBackgroundColor(true); 
    // multiRenderer.setPointSize(15); 
    multiRenderer.setLabelsColor(Color.WHITE); 
    multiRenderer.setGridColor(Color.RED); 
    multiRenderer.setMarginsColor(Color.parseColor("#54D66A")); 
    multiRenderer.setYLabelsColor(0,Color.WHITE); 
    multiRenderer.setXLabelsColor(Color.WHITE); 

    multiRenderer.setXTitle("Days"); 
    multiRenderer.setYTitle("Count"); 
    multiRenderer.setZoomButtonsVisible(true); 

    // Adding visitsRenderer and viewsRenderer to multipleRenderer 
    // Note: The order of adding dataseries to dataset and renderers to multipleRenderer 
    // should be same 
    multiRenderer.addSeriesRenderer(visitsRenderer); 
    // multiRenderer.addSeriesRenderer(viewsRenderer); 

    // Getting a reference to LinearLayout of the MainActivity Layout 
    LinearLayout chartContainer = (LinearLayout) findViewById(R.id.chart_container); 

    // Creating a Time Chart 
    mChart = (GraphicalView) ChartFactory.getTimeChartView(getBaseContext(), dataset, multiRenderer, "dd-MMM-yyyy"); 

    multiRenderer.setClickEnabled(true); 
    multiRenderer.setSelectableBuffer(10); 

    // Setting a click event listener for the graph 
    mChart.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Format formatter = new SimpleDateFormat("dd-MM"); 

      SeriesSelection seriesSelection = mChart.getCurrentSeriesAndPoint(); 

      if (seriesSelection != null) { 
       int seriesIndex = seriesSelection.getSeriesIndex(); 
       String selectedSeries = "Visits"; 
       if (seriesIndex == 0) 
        selectedSeries = "Visits"; 
       else 
        selectedSeries = "Views"; 

       // Getting the clicked Date (x value) 
       long clickedDateSeconds = (long) seriesSelection.getXValue(); 
       Date clickedDate = new Date(clickedDateSeconds); 
       String strDate = formatter.format(clickedDate); 

       // Getting the y value 
       int amount = (int) seriesSelection.getValue(); 

       // Displaying Toast Message 
       Toast.makeText(
         getBaseContext(), 
         selectedSeries + " on " + strDate + " : " + amount , 
         Toast.LENGTH_SHORT).show(); 
      } 
     } 

    }); 

    // Adding the Line Chart to the LinearLayout 
    chartContainer.addView(mChart); 
} 

回答

0

如果你想改變只有一個點的顏色,你可能要繼承渲染器並設置顏色渲染自己當點。

+0

沒有一分先生。我想改變所有的值如明智2000,2500,2700,2100,2800。這可能先生嗎? – 2014-11-25 12:56:02

+0

先生哪一個。請詳細說明 – 2014-11-25 12:59:31

+1

對不起,切斷了......實際上,如果你想讓這些點成爲與該線不同的顏色,那麼它的答案就相同了 - 渲染器的子類。如果您希望點和線條具有相同的顏色,但不是白色,請使用渲染器的setColor方法設置不同的顏色。 – GreyBeardedGeek 2014-11-25 13:05:00

0

添加顏色來呈現的標籤:

multiRenderer.setYLabelsColor(0, Color.BLACK); 
multiRenderer.setXLabelsColor(Color.BLACK); 
+0

沒有。我不需要設置setYLabelsColor,setXLabelsColor的顏色。我想改變2000,2500,2700,2100,白色到黑色的價值 – 2014-11-27 05:43:07