Ось даты просмотра графика Android не отображается должным образом

У меня проблема с graphView на Android, когда я пытаюсь отобразить свой график с датами по оси X, я получаю такой результат: график

Значения x меняются каждый раз, когда я генерирую график, и иногда отображается полоса на графике, иногда не совсем случайная.

Вот мой код:

            Cursor weeklySale = db.getWeeklySale(login);

            DataPoint[] dp= new DataPoint[weeklySale.getCount()];
            Date[] dates= new Date[weeklySale.getCount()];

            int i=0;
            while(weeklySale.moveToNext())
            {
                SimpleDateFormat sdf = new SimpleDateFormat("dd MM yyyy");
                Calendar cal = Calendar.getInstance();
                cal.set(Calendar.WEEK_OF_YEAR, Integer.valueOf(weeklySale.getString(1)));
                cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);

                // Date c = new Date(weeklySale.getLong(1));
                dp[i]= new DataPoint(cal.getTime(), (long)weeklySale.getFloat(0));
                dates[i]= cal.getTime();

                System.out.println(weeklySale.getFloat(0)+" + "+weeklySale.getString(1)+" , "+sdf.format(cal.getTime()));
            }

            graph.removeAllSeries();

            GridLabelRenderer gridLabel = graph.getGridLabelRenderer();
            gridLabel.setHorizontalAxisTitle("Semaine");
            gridLabel.setVerticalAxisTitle("CA");

            LineGraphSeries series = new LineGraphSeries<DataPoint>(dp);
            series.setColor(Color.RED);
            graph.addSeries(series);

Спасибо


person Rémi Hirtz    schedule 13.11.2016    source источник


Ответы (1)


попробуйте изменить количество меток с помощью:

graph.getGridLabelRenderer().setNumHorizontalLabels()

Также вы должны переместить эту строку из цикла while для экономии памяти и производительности: SimpleDateFormat sdf = new SimpleDateFormat("dd MM yyyy");

person appsthatmatter    schedule 16.11.2016