Android 使用Achartengine仅显示图形的一部分

Android 使用Achartengine仅显示图形的一部分,android,achartengine,Android,Achartengine,我正在使用Achartengine生成时间图表。该数据集包括从2003年1月15日到2040年12月4日(x轴)的日期以及Y轴的相应随机值。我动态显示图形,在这里我一直读取后台线程(AsyncTask)上的值,并重新绘制图形视图。我有两个问题: 视图从1970年1月2日开始(我不知道为什么),我必须滚动到2003年1月15日才能看到图表。从2003年1月15日开始,我应该做哪些更改 此外,我还从和中获取了两个日期值(例如:从:2004年2月17日到:2006年6月23日),并且我只希望在此范围内

我正在使用Achartengine生成时间图表。该数据集包括从2003年1月15日到2040年12月4日(x轴)的日期以及Y轴的相应随机值。我动态显示图形,在这里我一直读取后台线程(AsyncTask)上的值,并重新绘制图形视图。我有两个问题:

  • 视图从1970年1月2日开始(我不知道为什么),我必须滚动到2003年1月15日才能看到图表。从2003年1月15日开始,我应该做哪些更改

  • 此外,我还从和中获取了两个日期值(例如:从:2004年2月17日到:2006年6月23日),并且我只希望在此范围内显示图表。有没有办法做到这一点


  • 我可以使用mrender.setYAxisMin(新日期(“1/15/2003 11:16:00 AM”).getTime()解决第一个问题,虽然这是一个不推荐使用的方法,但它为我解决了问题。现在,当我显示图形时,它从给定数据开始,而不是1970年1月2日。

    您可以在重新绘制之前,使用所需的值动态设置Y轴最小值和最大值

    而对于1。问题是,也许更好的选择是设置平移限制,这样你们就不能滚动到图表的空白部分。 你可以这样做

    mRenderer.setPanLimits(new double[]{xMin, xMax, yMin, yMax});
    
    你这样计算极限

    double xMin = minDate.getTime();
    double xMax = maxDate.getTime();
    

    我理解了为什么它开始显示1970年1月2日的表单,这是因为我使用dataset.add(日期x,双y)向数据集添加点,并将数据对象创建为新数据(字符串y),这考虑了1970年1月2日的日期范围。