2012-01-15 16 views
7

私はAndroidで新しく、コールログから毎日の発信時間を表すタイムチャートを実装するためにachartengineを使用したいと思います。andchartroidでTimeChartを実装する方法

私はこれをどのように行うことができ、何をすべきかを知っていますか?

答えて

24

ですから、レイアウト(main.xml)必要があります:私はので、多分、いくつかのエラーがあるコードをテストしていませんでした

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

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

と活動(TestgrafActivity.javaを) 。ちょうどあなたが写真を手に入れたかったのです。

私は自宅でテストしました。私に電子メールを送るなら、あなたにeclipseプロジェクトを送ることができます。

+0

ありがとうToni、私はこのコードをテストし、私はそれが私をとても助けてくれると思います。これは私の電子メール[email protected] – Basant

+0

ありがとうtoniです。あなたは私の時間を節約していますおかげで再び –

+0

それは@ AshishDwivedi便利なレートをしてください:) – toni

関連する問題