2015-05-28 75 views
2

設計師送我的圖表看起來像這樣:如何使MPAndroidChart背景像這樣?

enter image description here

但我不知道如何使背景像,becase的這個圖表背景有,你可以看到兩種不同的顏色,對於每一個變化圖表項目。

這裏是我的結果

enter image description here

可能使圖表背景的設計師製作的呢?

回答

0

您可以繪製組合圖表[see this]

你提到了一個繪製圖的技巧。在組合圖表中,繪製具有最大值的條形圖並根據需要設置顏色。

+0

在您添加圖表的鏈接看起來不像我的。你能爲我的背景添加示例代碼嗎? – Zookey

+0

您可以使用兩個BarDataSet繪製條形圖併爲這些組賦予不同的顏色。另外,將條之間的間距設置爲0f。你會得到相同的背景。 – abhinav

+0

編寫代碼示例,我會接受你的回答。 – Zookey

0

我想@abhinav意思是這樣的:

@Override 
protected void onCreate(final Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.chart); 

    // 
    // configure chart 
    final CombinedChart chart = (CombinedChart) findViewById(R.id.chart); 

    // prepare labels on x-axis 
    final List<String> labels = new ArrayList<>(); 
    labels.add("MAY 22"); 
    labels.add("MAY 23"); 
    labels.add("MAY 24"); 
    labels.add("MAY 25"); 
    labels.add("MAY 26"); 
    labels.add("MAY 27"); 
    labels.add("MAY 28"); 

    // prepare data for line graph 
    final List<Entry> ratesEntries = new ArrayList<>(); 
    ratesEntries.add(new Entry(85f, 0)); 
    ratesEntries.add(new Entry(75f, 1)); 
    ratesEntries.add(new Entry(15f, 2)); 
    ratesEntries.add(new Entry(40f, 3)); 
    ratesEntries.add(new Entry(75f, 4)); 
    ratesEntries.add(new Entry(60f, 5)); 
    ratesEntries.add(new Entry(0f, 6)); 

    final List<ILineDataSet> ratesDatasets = new ArrayList<>(); 
    ratesDatasets.add(createRatesDataset(ratesEntries)); 

    // prepare data for bar graph 
    final BarData periodBarData = new BarData(labels); 

    List<BarEntry> periodEntries; 

    periodEntries = new ArrayList<>(); 
    periodEntries.add(new BarEntry(100f, 0)); 
    periodEntries.add(new BarEntry(100f, 2)); 
    periodEntries.add(new BarEntry(100f, 4)); 
    periodEntries.add(new BarEntry(100f, 6)); 

    BarDataSet periodDataset; 

    periodDataset = new BarDataSet(periodEntries, null); 
    periodDataset.setColor(Color.parseColor("#ccd2c0ff")); // transparency 80% 
    periodDataset.setDrawValues(false); 
    periodDataset.setBarSpacePercent(0); 
    periodBarData.addDataSet(periodDataset); 

    periodEntries = new ArrayList<>(); 
    periodEntries.add(new BarEntry(100f, 1)); 
    periodEntries.add(new BarEntry(100f, 3)); 
    periodEntries.add(new BarEntry(100f, 5)); 

    periodDataset = new BarDataSet(periodEntries, null); 
    periodDataset.setColor(Color.parseColor("#ccc0daff")); // transparency 80% 
    periodDataset.setDrawValues(false); 
    periodDataset.setBarSpacePercent(0); 
    periodBarData.addDataSet(periodDataset); 

    // prepare data for combined chart 
    final CombinedData data = new CombinedData(labels); 
    data.setData(new LineData(labels, ratesDatasets)); 
    data.setData(periodBarData); 

    chart.setData(data); 
} 

private ILineDataSet createRatesDataset(final List<Entry> entries) { 
    final LineDataSet d = new LineDataSet(entries, null); 
    d.setColor(Color.BLUE); 
    d.setLineWidth(2.5f); 
    d.setCircleColor(Color.BLUE); 
    d.setCircleRadius(5f); 
    d.setFillColor(Color.BLUE); 
    d.setDrawCubic(true); 
    d.setDrawValues(false); 
    d.setValueTextSize(10f); 
    d.setValueTextColor(Color.BLUE); 
    d.setAxisDependency(YAxis.AxisDependency.LEFT); 

    return d; 
} 

注意,酒吧alpha通道有80%(詳細信息請看這裏:How to make a background 20% transparent on Android)。

相關問題