总的来说,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);

}

}

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

  1. android statusbar背景,Android踩坑记之沉浸式StatusBar

    沉浸式statusBar开始火热的时候也是比较久远了,网上各种大牛关于这部分的博客也是多的一塌糊涂.自己动手写博客,作为知识的巩固,话不多说,直接开搞.5.0以下的暂时不想搞,毕竟懒人一枚. 布局中有 ...

  2. android动画背景,Android开发之背景动画简单实现方法

    在Android开发中,我们都会接到项目的业务需求,实现应用程序背景动画的效果,接下来,爱站技术频道小编带给大家的Android开发之背景动画简单实现方法. 1.先创建动画层,有三张图片 androi ...

  3. android不规则背景,Android不规则图像填充颜色小游戏

    一.概述 近期群里偶然看到一哥们在群里聊不规则图像填充什么四联通.八联通什么的,就本身好学务实的态度去查阅了相关资料.对于这类着色的资料,最好的就是去搜索些相关app,根据我的观察呢,不规则图像填充在 ...

  4. android弧形背景,Android 弧形进度条

    Android自带的progressbar组件基本可以满足常用的一些需求,最近一套新UI用到了弧形的进度条,如图 最初看到,自己是想自己实现,涉及到的问题就比较多,需要一些精确的计算画上去,整个屏幕的 ...

  5. android actionbar 背景,Android应用开发之定制页面背景及Actionbar overflow menu的背景色...

    本文将带你了解Android应用开发之定制页面背景及Actionbar overflow menu的背景色,希望本文对大家学Android有所帮助 定义theme和style, 注意是actionOv ...

  6. android 涟漪背景,Android 水波效果 | 涟漪效果 实现

    在Xml 里面实现 给Button设置一个background ripple_background 内容如下: ripple 的Color属性,就是设置水波效果的颜色. ripple 的子节点可以设置 ...

  7. Android textedit 背景,Android EditText 的使用及值得注意的地方

    Android上有很多输入法应用,每种输入法都有各自的特点,输入法多数时候是和EditText配合使用,结合我自己的亲身实践分享一下使用EditText过程中遇到的一些问题及解决方法. 设置默认输入法 ...

  8. Android报表库aChartEngine系列

    1.前言 今天准备为大家讲讲aChatEngine方面的知识,在之后的一段时间里会陆续讲aChartEngine如何使用的Demo. 为什么选择aChartEngine给大家讲呢?因为在android ...

  9. android 矢量图 背景 ui,Android:使用矢量图图标库+9-patch图进行UI设计

    矢量图UI + 9-Patch适配 首先矢量图网站: https://www.iconfont.cn/ 里面提供了丰富的矢量图标,供开发者使用 效果: 矢量图库 下载图标 + 导入到Android S ...

最新文章

  1. 属性(Properties)和字段在C#中的关系
  2. docker系列之安装配置-2
  3. 斑能不能彻底去掉_海鲜不能和什么一起吃
  4. 怎么画闭合线_骨骺线闭合怎么长高
  5. 宁波python学习_python学习第二十天
  6. 如何循环数据库中的所有表名?
  7. FRR -- CLI简要分析
  8. Linux系统彻底卸载MySQL数据库
  9. 用qt建立自定义对话框的方法,含vc2015 vc版本中使用
  10. Javashop 7.0 支付成功以后库里面没有记录问题
  11. 邮件的服务器密码不正确,企业邮箱foxmail提示接收密码错误解决方法
  12. 自主招生计算机网测考什么,自主招生是什么意思 2019自主招生考试考什么
  13. 【语音智能管家】之语音唤醒(附演示视频)
  14. 未能加载文件或程序集
  15. 串口(RS - 232)
  16. 【win7黑屏终结者】win7电脑登录账户后黑屏(只有鼠标箭头)问题
  17. [从头读历史] 第267节 诗经 邶风
  18. JDK8 超详细,肝
  19. 日常英语---十二、MapleStory/Monsters/Level 1-10(Horny Mushroom)
  20. net-java-php-python-医药库存管理系统计算机毕业设计程序

热门文章

  1. Yii框架zii.widgets.grid自定义按钮
  2. jzoj 6012.【NOIP2019模拟1.25A组】荷马史诗 dp
  3. JSD-2204-MVC-微博项目-Day15
  4. linux mint ubuntu 16.06,Ubuntu和Linux Mint:安装Pinta 1.6工具
  5. 【ESP 保姆级教程 预告】疯狂Node.js服务器篇 ——案例:ESP8266 + DHT11 +NodeJs本地服务+ MySQL数据库
  6. 通过快递鸟如何接入申通快递电子面单
  7. AntDesignVue中Table表格嵌套子表格expandedRowRender插槽用法
  8. 每日一算法:冒泡排序
  9. DDoS防御选高防IP还是高防CDN?
  10. 如何服务器上的打印机共享文件夹,用局域网设置共享打印机的方法有哪些?