2014年11月25日 星期二

[Android] MPAndroidChart 圖表製作

資料來源 https://github.com/PhilJay/MPAndroidChart

網路上其實已經有很多這類的相關資訊了,但是找了很久,要不就是很複雜,要不就是很簡陋,就好像只有點到而已,所以在這邊做一個很簡單的示範,就獻醜了!!

效果顯示



XML內容

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.guider.chartmp.MainActivity" >


      <com.github.mikephil.charting.charts.LineChart
          android:id="@+id/chart"
          android:layout_width="match_parent"
          android:layout_height="match_parent" />


</RelativeLayout>


code 內容

public class MainActivity extends Activity {
LineChart chart;
ArrayList <String> xVals = new ArrayList<String>();
ArrayList <String> yVals = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
chart = (LineChart) findViewById(R.id.chart);
chart.setDescription("說明文字");
chart.fitScreen();
LineData data = getData(12, 100);
chart.setData(data);

}

    protected String[] mMonths = new String[] {
            "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"
    };
private LineData getData(int count, float range) {
// TODO Auto-generated method stub
      ArrayList<String> xVals = new ArrayList<String>();
       for (int i = 0; i < count; i++) {
           xVals.add(mMonths[i % 12]);
       }

       ArrayList<Entry> yVals = new ArrayList<Entry>();

       for (int i = 0; i < count; i++) {
           float val = (float) (Math.random() * range) + 3;
           yVals.add(new Entry(val, i));
       }

       // create a dataset and give it a type
       LineDataSet set1 = new LineDataSet(yVals, "DataSet 1");
       set1.setLineWidth(5);
       set1.setCircleSize(3f);
       set1.setColor(Color.BLUE);
       set1.setCircleColor(Color.BLUE);
       set1.setHighLightColor(Color.BLUE);

       ArrayList<LineDataSet> dataSets = new ArrayList<LineDataSet>();
       dataSets.add(set1); // add the datasets

       // create a data object with the datasets
       LineData data = new LineData(xVals, dataSets);
return data;
}
}

完整程式下載 : https://drive.google.com/open?id=0B2WSxYpFVHkaS3VsS2dTQTlfNEE&authuser=0

沒有留言:

張貼留言