2016-07-07 4 views
-3

В настоящее время я работаю над реализацией библиотеки диаграмм MpAndroid из учетной записи Philip Jay GitHub. Следуя некоторым учебникам, я сделал свою реализацию. Но у меня очень простая проблема в настройке веса бара.Создание диаграммы Android с использованием библиотеки диаграмм MPAndroid

Я реализую его таким образом, чтобы его высота макета составляла 1/3 экрана и, следовательно, ширину. Я пробовал использовать другой метод, используя мой макет, но не смог решить проблему.

Есть ли какое-либо обходное решение, которое я могу сделать, чтобы изменить или отрегулировать вес каждого столбца, предпочтительно, четверть реализованных - это все, что мне нужно. Также как изменить фон диаграммы.

Был бы рад, если я смогу получить руководство о том, как это сделать. Цените свой ответ заранее

ответ

1

Для веса штанги, один из способов является использование:

BarDataSet set = new BarDataSet(vals, "Set A"); 
set.setBarSpacePercent(50f); 

Другой альтернативный способ заключается в использовании BarChart.setVisibleXRangeMaximum(10) и BarChart.setVisibleXRangeMinimum(10);. Это будет показывать только 10 баров за раз, и поэтому мы можем установить косвенный вес бара. Чтобы просмотреть больше, вам нужно прокрутить вправо или влево.
Для получения дополнительной информации о весе, вы можете обратиться к this.

Для изменения фона диаграммы, вы можете использовать BarChart.setBackgroundColor(...) или BarChart.setBackgroundResource(...)

0
chart=(BarChart)findViewById(R.id.chart); 
    ArrayList<String> xAxis=new ArrayList<>(); 
    ArrayList<IBarDataSet> dataSets=null; 
    ArrayList<BarEntry> valueSet=new ArrayList<>(); 

    xAxis.add("Mozilla Firefox"); 
    xAxis.add("Google Chrome"); 
    xAxis.add("Internet Explorer"); 
    xAxis.add("Safari"); 

    valueSet.add(new BarEntry(25,0)); 
    valueSet.add(new BarEntry(20,1)); 
    valueSet.add(new BarEntry(40,2)); 
    valueSet.add(new BarEntry(30,3)); 

    BarDataSet barDataSet=new BarDataSet(valueSet,"Browser"); 
    barDataSet.setColors(new int[] {Color.RED,Color.GREEN,Color.MAGENTA,Color.BLUE}); 

    dataSets=new ArrayList<>(); 
    dataSets.add(barDataSet); 

    YAxis yAxisRight=chart.getAxisRight(); 
    yAxisRight.setEnabled(false); 

    BarData data=new BarData(xAxis,dataSets); 
    chart.setExtraOffsets(0,0,0,20); 
    chart.setData(data); 
    chart.animateXY(2000,2000); 
    chart.invalidate();