網路上其實已經有很多這類的相關資訊了,但是找了很久,要不就是很複雜,要不就是很簡陋,就好像只有點到而已,所以在這邊做一個很簡單的示範,就獻醜了!!
效果顯示
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;
}
}
沒有留言:
張貼留言