Android: GraphView 如何在 X 轴上实现时间?

标签 android android-graphview

我发现弄清楚如何在 Android 中的图表的 X 轴上实现时间有点困难?

这是我的代码:

for (int i = 0; i < listSize; i++) 
            {
                String[] onlyReading = mData.get(i).getReading().split(" ");
                readingList[i] = Double.parseDouble(onlyReading[0]);
                String date = mData.get(i).getUnFormatedDate();
                String[] temp = date.split(" ");
                String[] dateTemp = null;
                String[] timeTemp = null;

                if(temp.length > 0) 
                {
                    dateTemp = temp[0].trim().split("-");
                    timeTemp = temp[1].trim().split(":");

                    Date dateObj = new Date();
                    String year = "0";
                    if(dateTemp != null)
                    {
                        dateObj.setDate(Integer.parseInt(dateTemp[0]));
                        dateObj.setMonth(Integer.parseInt(dateTemp[1]) - 1);
                        year = dateTemp[2].trim();
                        if(dateTemp[2].trim().length() == 4)
                        {
                            year = dateTemp[2].substring(2, 4);
                        }
                        dateObj.setYear(Integer.parseInt(year)+100);
                    }
                    if(timeTemp != null)
                    { 
                        calendar = new GregorianCalendar(Integer.parseInt(year) + 2000, Integer.parseInt(dateTemp[1]) - 1, Integer.parseInt(dateTemp[0]), Integer.parseInt(timeTemp[0]), Integer.parseInt(timeTemp[1]));
                    }

                    dateObj = new Date(calendar.getTimeInMillis());
                    dateList[i] = dateObj;
                }
            }

            if(dateList.length > 0)
            { 
                //dates.clear();
                //values.clear();
                //readingData.clear();
                //readingDate.clear();

                GraphViewData[] data = new GraphViewData[dateList.length];





                LineGraphView graphView = new LineGraphView(
                          getActivity() // context
                          , "" // heading
                    );


                for (int i = 0; i < listSize; i++)
                {
                    data[i] = new GraphViewData(Double.valueOf(i), readingList[i]);
                } 

                GraphViewSeries exampleSeries = new GraphViewSeries(data);
                graphView.addSeries(exampleSeries);
                graphView.setDrawBackground(false);
                ((LineGraphView) graphView).setDrawDataPoints(true);
                graphView.getGraphViewStyle().setGridColor(0);
                graphView.getGraphViewStyle().setHorizontalLabelsColor(Color.WHITE);
                graphView.getGraphViewStyle().setVerticalLabelsColor(Color.WHITE);
                graphView.getGraphViewStyle().setNumHorizontalLabels(5);
                graphView.getGraphViewStyle().setNumVerticalLabels(5);
                graphView.setManualYAxisBounds(400, 0);
                mGraphParent.addView(graphView);
            }  
        }

即使我添加了 Y 轴值,我还是无法弄清楚如何将时间值添加到 X 轴?

最佳答案

我知道这是一个老问题,但我使用 DefaultLabelFormatter() 解决了。

graphView.getGridLabelRenderer().setLabelFormatter(new DefaultLabelFormatter() {
    @Override
    public String formatLabel(double value, boolean isValueX) {
        if (isValueX) {
            Format formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            return formatter.format(value);
        }
        return super.formatLabel(value, isValueX);
    }
});

基于以下视频: https://www.youtube.com/watch?v=xt8gx7Z7yJU

关于Android: GraphView 如何在 X 轴上实现时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21217635/

相关文章:

java - 在图 TableView 中将日期显示为 X 轴不起作用(每次显示相同)

java - 如何从我自己的应用程序运行另一个应用程序?例如,我想在单击应用程序中的按钮时运行 Facebook

android - SQLite 选择所有行并添加到 ListView Android

java - 如何使用(导入)com.aldebaran.qi.helper.proxies.*;在 android studio 上,以便它可以在我的手机上运行?

android - 尝试从 View 中获取位图时总是出现 IllegalStateException 错误

java - Android/Java创建帮助程序类以创建图形

android TabLayout 如何显示阴影顶部

android - 动态特性模块第三方库无法访问资源

android - 如何在android中将自定义颜色条显示到 ListView 适配器中

带有自定义水平标签的 Android-GraphView 显示不正确