android achartengine 背景,Android图标库AChartEngine使用(一)曲线图

a4c26d1e5885305701be709a3d33442f.png

总的来说,AChartEngine提供的api还是很全的,使用起来是很方便的,

添加依赖

compile files('libs/achartengine-1.2.0.jar')

主要代码如下:

public class WeightCurveActivity

extends Activity {

static final String TAG =

WeightCurveActivity.class.getName();

private LinearLayout rootLayout;

private XYMultipleSeriesRenderermRenderer;

private XYMultipleSeriesDataset mDataset = new

XYMultipleSeriesDataset();

private int month;

private Date date;

private ArrayList records;

private double[] xValues;

private double[] yValues;

public void onCreate(Bundle outState)

{

super.onCreate(outState);

setContentView(R.layout.weight_curve);

handleIntent();

initRender();

initData();

initUI();

}

private void handleIntent() {

String

dateString = getIntent().getStringExtra("date");

date = new

Date();

}

private void initRender() {

mRenderer

= buildRenderer();

setChartSettings(0, 31, 30, 120);

}

private void initData() {

month =

new Date().getMonth();

WeightRecordDao dao = new WeightRecordDao(this);

records =

new ArrayList<>();

for (int i

= 1; i < 11; i++) {

WeightRecord wr = new

WeightRecord();

wr.record_on =

i+2;

wr.weight = 60 +

(int)(1+Math.random()*(10-1+1)); //从1到10的int型随数

records.add(wr);

}

Log.e("TAG", "列表个数:" +records.size());

initValues();

}

private void initValues() {

int count

= records.size();

if (count

> 0) {

xValues = new

double[count];

yValues = new

double[count];

for (int i = 0; i < count;

i ++) {

WeightRecord record = records.get(i);

xValues[i] = record.record_on;

yValues[i] = (Math.round(record.weight * 10) /

10.0);

}

setXLabel();

}

}

private void initUI() {

addXYSeries(0);

rootLayout

= (LinearLayout) findViewById(R.id.root);

View view

= ChartFactory.getLineChartView(this, mDataset,

mRenderer);

rootLayout.addView(view);

}

private void setXLabel() {

mRenderer.setXLabels(0); // 设置X轴标签不显示

int length

= xValues.length;

for (int i

= 0; i < length; i++) {

mRenderer.addXTextLabel(i * 3

+ 1, month + "/" + (int)xValues[i]);

}

}

private XYMultipleSeriesRendererbuildRenderer()

{

XYMultipleSeriesRendererrenderer = new

XYMultipleSeriesRenderer();

renderer.setAxisTitleTextSize(26); // 设置坐标轴字体大小

renderer.setChartTitleTextSize(36); // 设置标题大小

renderer.setLabelsTextSize(20); // 设置标签字体大小

renderer.setLegendTextSize(15); // 设置底部曲线说明字体大小

renderer.setShowGridX(true); // 设置X方向表格显示

renderer.setShowLegend(false); // 设置底部曲线说明显示

renderer.setGridColor(Color.LTGRAY); // 设置表格颜色

renderer.setPointSize(10f);

renderer.setMargins(new int[] { 30, 40, 10, 30 });

renderer.setPanEnabled(true, false); // 设置曲线可滑动

renderer.setApplyBackgroundColor(true); // 设置图表背景

renderer.setBackgroundColor(Color.TRANSPARENT);

renderer.setChartTitle("体重曲线");

renderer.setXTitle("日期");

renderer.setYTitle("体重");

renderer.setXLabelsColor(Color.YELLOW);

renderer.setXLabelsAlign(Paint.Align.CENTER);

renderer.setXLabelsPadding(5);

renderer.setYLabelsColor(0,

Color.GREEN);

renderer.setYLabelsPadding(5);

renderer.setYLabelsAlign(Paint.Align.RIGHT);

renderer.setAxesColor(Color.GRAY); // 设置坐标轴颜色

renderer.setMarginsColor(getResources().getColor(R.color.main_bg_color));

// 设置图表周围颜色

renderer.setLabelsColor(Color.GRAY); // 设置标签颜色

XYSeriesRenderer r = new XYSeriesRenderer();

r.setColor(getResources().getColor(R.color.stress_font_color));

r.setFillPoints(true);

r.setPointStyle(PointStyle.CIRCLE);

renderer.addSeriesRenderer(r);

r.setDisplayChartValues(true); // 设置显示图表值

r.setDisplayChartValuesDistance(1);

r.setChartValuesTextSize(16);

r.setChartValuesSpacing(10);

r.setHighlighted(true);

return

renderer;

}

private void setChartSettings(double xMin,

double xMax, double yMin,

double yMax) {

mRenderer.setXAxisMin(xMin); // 设置X轴最小值

mRenderer.setXAxisMax(xMax); // 设置X轴最大值

mRenderer.setYAxisMin(yMin); // 设置Y轴最小值

mRenderer.setYAxisMax(yMax); // 设置Y轴最大值

}

private void addXYSeries(int scale) {

XYSeries

series = new XYSeries("", scale);

if

(records.size() > 0) {

int seriesLength =

xValues.length;

for (int k = 0; k <

seriesLength; k++) {

series.add(k * 3 + 1, yValues[k]);

}

}

mDataset.addSeries(series);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值