How to implement TimeChart in achartengine using android

I'm new to android and I want to use achartengine to create a timeline that represents the duration of daily outgoing calls from the call log.

Does anyone know how I can do this and what should I do?

+7
source share
1 answer

So you need a layout (main.xml):

<?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> 

and activity (TestgrafActivity.java):

  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); } } } 

I have not tested the code, so there may be some errors. Just wanted you to get the picture.

I checked at home. If you give me an email, I can send you an eclipse project.

+24
source

All Articles