您的位置:首页 > 其它

AchartEngine折线图

2016-05-26 11:41 295 查看
package com.zuqiuyu.heartrate;

import android.app.Activity;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.ViewGroup.LayoutParams;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.zuqiuyu.heartrate.data.IOtxt;
import com.zuqiuyu.heartrate.utils.CONST;

import org.achartengine.ChartFactory;
import org.achartengine.GraphicalView;
import org.achartengine.chart.PointStyle;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.model.XYSeries;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;

public class RecordChartActivity extends Activity {
public static SharedPreferences sharedPreferences;
public static SharedPreferences.Editor editor;
private RelativeLayout static_chart_line_layout;
private String title = "ECG";
public static int y[];
// 用于存放每条折线的点数据
// 用于存放所有需要绘制的XYSeries
// 用于存放每条折线的风格
private GraphicalView chart;
public static TextView tvRecordHR;
public static String time;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_record_chart);
static_chart_line_layout = (RelativeLayout) findViewById(R.id.static_chart_line_layout);
initChart();
sharedPreferences = MainActivity.sharedPreferences;
editor = MainActivity.editor;
tvRecordHR.setText("您的心率为"+sharedPreferences.getString(time, "")+"bpm");
}

private void initChart() {
chart = ChartFactory.getLineChartView(this, getDataset(), getRender());
tvRecordHR = (TextView) findViewById(R.id.tvRecordHR);
static_chart_line_layout.addView(chart, new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT));
}

private XYMultipleSeriesDataset getDataset() {
XYMultipleSeriesDataset mDataset = new XYMultipleSeriesDataset();
XYSeries series = new XYSeries("折线");
for (int i = 0;i<y.length;i++)
series.add(i,y[i]);
mDataset.addSeries(series);
return mDataset;
}

public XYMultipleSeriesRenderer getRender(){
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
//设置图表中曲线本身的样式,包括颜色、点的大小以及线的粗细等
XYSeriesRenderer r = new XYSeriesRenderer();
r.setColor(Color.RED);
r.setPointStyle(PointStyle.POINT);
r.setFillPoints(true);
r.setLineWidth(3);
renderer.addSeriesRenderer(r);
renderer.setChartTitle(title);
renderer.setXTitle("x");
renderer.setYTitle("y");
renderer.setXAxisMin(0);
renderer.setXAxisMax(1000);
renderer.setYAxisMin(0);
renderer.setYAxisMax(200);
renderer.setAxesColor(Color.GREEN);
renderer.setLabelsColor(Color.GRAY);
renderer.setShowGrid(true);
renderer.setGridColor(Color.GREEN);
renderer.setXLabels(40);
renderer.setYLabels(20);
renderer.setLabelsTextSize(15);
renderer.setPanEnabled(true,false);//设置X,Y轴是否被拖动
renderer.setPanLimits(new double[]{0,1000000,0,0}); //设置拖动范围
renderer.setXTitle("时间(ms)");
renderer.setYTitle("电压(mv)");
renderer.setYLabelsAlign(Paint.Align.RIGHT);
renderer.setPointSize((float) 2);
renderer.setShowLabels(false); //设置是否显示坐标轴
renderer.setShowLegend(false);
return renderer;
}

}


xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
tools:context="com.zuqiuyu.heartrate.RecordChartActivity">
<RelativeLayout
android:background="#ff000000"
android:id="@+id/static_chart_line_layout"
android:layout_weight="5"
android:layout_width="match_parent"
android:layout_height="0dp"></RelativeLayout>
<LinearLayout
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="0dp">
<TextView
android:gravity="center"
android:text=""
android:id="@+id/tvRecordHR"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</LinearLayout>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: