如何用android在achartengine中实现时间图

如何用android在achartengine中实现时间图,android,achartengine,Android,Achartengine,我是android新手,我想使用achartengine来实现时间图,它表示通话日志中的每日传出通话持续时间 有人知道我该怎么做吗?我该怎么做?所以你需要一个布局(main.xml): 和活动(TestgrafActivity.java): 包si.pd.testgraf; 导入java.util.ArrayList; 导入java.util.Date; 导入java.util.List; 导入java.util.Random; 导入org.achartengine.ChartFactory

我是android新手,我想使用achartengine来实现时间图,它表示通话日志中的每日传出通话持续时间

有人知道我该怎么做吗?我该怎么做?

所以你需要一个布局(main.xml):


和活动(TestgrafActivity.java):

包si.pd.testgraf;
导入java.util.ArrayList;
导入java.util.Date;
导入java.util.List;
导入java.util.Random;
导入org.achartengine.ChartFactory;
导入org.achartengine.GraphicalView;
导入org.achartengine.chart.PointStyle;
导入org.achartengine.chart.TimeChart;
导入org.achartengine.model.TimeSeries;
导入org.achartengine.model.xymultiplesseriesdataset;
导入org.achartengine.renderer.XYMultipleSeriesRenderer;
导入org.achartengine.renderer.XYSeriesRenderer;
导入android.app.Activity;
导入android.graphics.Color;
导入android.os.Bundle;
导入android.widget.LinearLayout;
公共类TestgrafActivity扩展活动{
/**在首次创建活动时调用*/
私有XYmultiplesseriesdataset mDataset;
私有XYMultiplesriesRenderer-mRenderer;
列表值=新的ArrayList();
private GraphicalView mChartView;
私人时间序列时间序列;
//图表容器
私人线路布局;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
布局=(线性布局)findViewById(R.id.chart);
//创建数据集和渲染器
mDataset=new xymultiplesseriesdataset();
mrender=新的XYMultipleSeriesRender();
mrender.setAxisTitleTextSize(16);
mRenderer.setChartTitleTextSize(20);
mrender.setLabelsTextSize(15);
mrender.setLegendTextSize(15);
mrender.设定点大小(3f);
XYSeriesRenderer=新的XYSeriesRenderer();
r、 setColor(Color.GREEN);
r、 设置点样式(PointStyle.CIRCLE);
r、 设定值(真);
mrender.addseriesrender(r);
mrender.setClickEnabled(真);
mrender.setSelectableBuffer(20);
mrender.setPanEnabled(true);
时间序列=新的时间序列(“测试”);
mDataset.addSeries(时间序列);
fillData();
mChartView=ChartFactory.getTimeChartView(this、mDataset、mrender、,
“H:mm:ss”);
布局。添加视图(mChartView);
}
私有void fillData(){
long value=new Date().getTime()-3*TimeChart.DAY;
对于(int i=0;i<100;i++){
时间序列。添加(新日期(值+i*TimeChart.DAY/4),i);
}
}
}
我没有测试代码,所以可能有一些错误。只是想让你了解情况


我在家做了测试。如果您给我一封电子邮件,我可以给您发送eclipse项目。

谢谢Toni,我将测试此代码,我认为它将对我有很大帮助,这是我的电子邮件basant-mohamed@hotmail.complease评价它有用,然后@AshishDwivedi:)非常有用的代码!你能解释一下layXzoom的用途吗?似乎你没有包括它的代码!但不管怎样,这是一个开始aChart的好地方@Radu:layXzoom只是一个线性布局视图,我忘了从示例中删除它。我在我的一个X轴缩放按钮项目中使用了它:如果它对你有用,请给它打分!谢谢,ToniAlready!好东西,让我开始-我可以从这里开始,再次感谢!
    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/chart"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" />

    <LinearLayout
        android:id="@+id/layXzoom"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:orientation="horizontal"
        android:padding="5dp" >
    </LinearLayout>

</RelativeLayout>
    package si.pd.testgraf;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Random;

import org.achartengine.ChartFactory;
import org.achartengine.GraphicalView;
import org.achartengine.chart.PointStyle;
import org.achartengine.chart.TimeChart;
import org.achartengine.model.TimeSeries;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.LinearLayout;

public class TestgrafActivity extends Activity {
    /** Called when the activity is first created. */
    private XYMultipleSeriesDataset mDataset;
    private XYMultipleSeriesRenderer mRenderer;
    List<double[]> values = new ArrayList<double[]>();
    private GraphicalView mChartView;
    private TimeSeries time_series;

    // chart container
    private LinearLayout layout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        layout = (LinearLayout) findViewById(R.id.chart);

        // create dataset and renderer
        mDataset = new XYMultipleSeriesDataset();
        mRenderer = new XYMultipleSeriesRenderer();
        mRenderer.setAxisTitleTextSize(16);
        mRenderer.setChartTitleTextSize(20);
        mRenderer.setLabelsTextSize(15);
        mRenderer.setLegendTextSize(15);
        mRenderer.setPointSize(3f);

        XYSeriesRenderer r = new XYSeriesRenderer();
        r.setColor(Color.GREEN);
        r.setPointStyle(PointStyle.CIRCLE);
        r.setFillPoints(true);
        mRenderer.addSeriesRenderer(r);
        mRenderer.setClickEnabled(true);
        mRenderer.setSelectableBuffer(20);
        mRenderer.setPanEnabled(true);

        time_series = new TimeSeries("test");

        mDataset.addSeries(time_series);

        fillData();

        mChartView = ChartFactory.getTimeChartView(this, mDataset, mRenderer,
                "H:mm:ss");

        layout.addView(mChartView);
    }

    private void fillData() {
        long value = new Date().getTime() - 3 * TimeChart.DAY;
        for (int i = 0; i < 100; i++) {
            time_series.add(new Date(value + i * TimeChart.DAY / 4), i);
        }
    }
}