2012-01-15 21 views
7

Tôi mới sử dụng android và tôi muốn sử dụng achartengine để triển khai biểu đồ thời gian đại diện cho thời lượng cuộc gọi đi hàng ngày từ nhật ký cuộc gọi.cách triển khai TimeChart trong achartengine với android

Có ai biết cách tôi có thể làm điều này và tôi nên làm gì?

Trả lời

24

Vì vậy, bạn cần có một bố cục (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> 

và hoạt động (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); 
     } 
    } 
} 

tôi không kiểm tra mã như vậy có lẽ có một số lỗi . Chỉ muốn bạn có được hình ảnh.

Tôi đã làm bài kiểm tra ở nhà. Nếu bạn đưa cho tôi một email, tôi có thể gửi cho bạn dự án nhật thực.

+0

cảm ơn Toni, tôi sẽ kiểm tra mã này và tôi nghĩ rằng nó sẽ giúp tôi rất nhiều và đây là email của tôi [email protected] – Basant

+0

cảm ơn toni. bạn đang tiết kiệm thời gian của tôi Cảm ơn một lần nữa dude –

+0

xin đánh giá nó hữu ích sau đó @AshishDwivedi :) – toni

Các vấn đề liên quan