achartengine作为android开发中最常用的实现图标的开源框架,使用比较方便,参考官方文档谢了如下Demo,实现了自定义折线图。

package edu.ustb.chart;

import org.achartengine.ChartFactory;
import org.achartengine.GraphicalView;
import org.achartengine.chart.PointStyle;
import org.achartengine.model.SeriesSelection;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.model.XYSeries;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer; import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import android.widget.Toast; public class MainActivity extends Activity { private GraphicalView mChartView;
private XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();
private XYMultipleSeriesDataset mDataset = new XYMultipleSeriesDataset(); double[] xdata = new double[] { 11, 22, 33, 44, 55, 66, 77, 88, 99, 110 };
double[] ydata = new double[] { 11, 11, 22, 33, 44, 55, 66, 77, 88, 99 }; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); } /**
* 得到住渲染器,并对其各项属性进行设置
*
* @return
*/
public XYMultipleSeriesRenderer getRenderer() {
/** 设置主渲染器的各种属性 */
// 设置背景色是否启用
mRenderer.setApplyBackgroundColor(true);
// 设置背景色
mRenderer.setBackgroundColor(Color.argb(100, 20, 30, 40));
// 设置x y轴标题字体大小
mRenderer.setAxisTitleTextSize(16);
// 设置表格标题字体大小
mRenderer.setChartTitleTextSize(20);
// 设置标签字体大小
mRenderer.setLabelsTextSize(15);
// 设置图例字体大小
mRenderer.setLegendTextSize(15);
mRenderer.setMargins(new int[] { 20, 20, 20, 20 });
// 设置是否显示放大缩小按钮
mRenderer.setZoomButtonsVisible(true);
// 设置图表上显示点的大小
mRenderer.setPointSize(5); // create a new renderer for the new series
XYSeriesRenderer renderer = new XYSeriesRenderer();
// set some renderer properties
renderer.setPointStyle(PointStyle.CIRCLE);
renderer.setFillPoints(true);
renderer.setDisplayChartValues(true);
renderer.setDisplayChartValuesDistance(100);
renderer.setColor(Color.RED);
setSeriesWidgetsEnabled(true);
mRenderer.addSeriesRenderer(renderer);
return mRenderer;
} /**
* 得到住渲染器,并对其各项属性进行设置
*
* @return
*/
public XYMultipleSeriesDataset getDataset() {
String seriesTitle = "健康数据";
XYSeries mSeries = new XYSeries(seriesTitle);
for (int i = 0; i < 10; i++) {
double x = xdata[i];
double y = ydata[i];
// 把坐标添加到当前序列中去
mSeries.add(x, y);
}
mDataset.addSeries(mSeries);
return mDataset;
} @Override
protected void onResume() {
super.onResume();
if (mChartView == null) {
LinearLayout layout = (LinearLayout) findViewById(R.id.chart);
mChartView = ChartFactory.getLineChartView(this, getDataset(), getRenderer());
// enable the chart click events
mRenderer.setClickEnabled(true);
mRenderer.setSelectableBuffer(10);
mChartView.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// handle the click event on the chart
SeriesSelection seriesSelection = mChartView.getCurrentSeriesAndPoint();
if (seriesSelection == null) {
Toast.makeText(MainActivity.this, "No chart element", Toast.LENGTH_SHORT).show();
} else {
// display information of the clicked point
Toast.makeText(MainActivity.this, "Chart element in series index " + seriesSelection.getSeriesIndex() + " data point index " + seriesSelection.getPointIndex() + " was clicked" + " closest point value X=" + seriesSelection.getXValue() + ", Y=" + seriesSelection.getValue(), Toast.LENGTH_SHORT).show();
}
}
});
layout.addView(mChartView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
boolean enabled = mDataset.getSeriesCount() > 0;
setSeriesWidgetsEnabled(enabled);
} else {
mChartView.repaint();
} } /**
* Enable or disable the add data to series widgets
*
* @param enabled
* the enabled state
*/
private void setSeriesWidgetsEnabled(boolean enabled) {
// mX.setEnabled(enabled);
// mY.setEnabled(enabled);
// mAdd.setEnabled(enabled);
} }

使用achartengine实现自定义折线图 ----附代码 调试OK的更多相关文章

  1. Android自定义折线图

    老师布置了个作业:http://www.cnblogs.com/qingxu/p/5316897.html 作业中提到的 “玩了几天以后,大家发现了一些很有意思的现象,比如黄金点在逐渐地往下移动.” ...

  2. android 自定义折线图

    看图: 比较简陋,主要是通过canvas画上去的: package com.example.democurvegraph.view; import java.util.ArrayList; impor ...

  3. echarts自定义折线图横坐标时间间隔踩坑总结

    折线图需求:横坐标为时间,要求按一定间隔展示,鼠标移至折线上间隔时间内的数据也可展示 其实很简单的一个配置就可搞定,但在不熟悉echarts配置的情况下,就很懵逼 xAxis: { boundaryG ...

  4. iOS 动画绘制线条颜色渐变的折线图

    效果图 .................... 概述 现状 折线图的应用比较广泛,为了增强用户体验,很多应用中都嵌入了折线图.折线图可以更加直观的表示数据的变化.网络上有很多绘制折线图的demo,有 ...

  5. react-echarts之折线图的显示

    react中想要实现折线图和饼图的功能,需要引入react-echarts包,然后再实现折线图的功能.我这里引用的版本是:0.1.1.其他的写法参echarts官网即可.下面详细讲解的是我在react ...

  6. php中用GD绘制折线图

    php中用GD绘制折线图,代码如下: Class Chart{ private $image; // 定义图像 private $title; // 定义标题 private $ydata; // 定 ...

  7. 利用python进行折线图,直方图和饼图的绘制

    我用10个国家某年的GDP来绘图,数据如下: labels   = ['USA', 'China', 'India', 'Japan', 'Germany', 'Russia', 'Brazil', ...

  8. html5绘制折线图

    html5绘制折线图详细代码 <html> <canvas id="a_canvas" width="1000" height="7 ...

  9. OpenGL——折线图柱状图饼图绘制

    折线图绘制代码: #include<iostream> //旧版本 固定管线 #include<Windows.h> #include <GL/glut.h> // ...

随机推荐

  1. thinkpad t530 centos 6.4 有线网卡 设置

    由于新装的系统没有安装网卡驱动,各大厂商的标准又不一样,有的电脑在linux下不用安装无线网卡驱动,而很不幸,我的电脑是ret的网卡,只能自行安装,在安装无线网卡的过程中使用到了chkconfig的命 ...

  2. Apache本地服务无法自启动问题解决

    问题描述: Windows不能在本地计算机启动Apache2.有关更多信息,查阅系统事件日志.如果这是非Microsoft服务,请与服务厂商联系,并参考特定服务错误代码1. 解决方案: 1.检查Apa ...

  3. UESTC_Just a Maze CDOJ 1162

    Just a Maze Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 262144/262144KB (Java/Others) Su ...

  4. 沙湖王 | 用Scipy实现K-means聚类算法

    沙湖王 | 用Scipy实现K-means聚类算法 用Scipy实现K-means聚类算法

  5. 最小费用最大流模板 poj 2159 模板水题

    Going Home Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 15944   Accepted: 8167 Descr ...

  6. 虚拟机环境中安装ubuntu下的mysql-cluster7.3.2(单点服务器)

      部署环境: 系统:ubuntu-12.04.2 LTS -server-i386.iso Cluster:mysql-cluster-gpl-7.3.2-linux-glibc23-i686.ta ...

  7. web前端之 HTML介绍

    概述 HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏览器 ...

  8. PC-CSS-默认字体样式

    字体样式:Arial:字体大小:12px;行高:1.5倍:

  9. 再谈cacheAsBitmap

    cacheAsBitmap这个属性很多人都知道,但少有人明白它到底是如何生效的.虽然看名字是转换为位图处理,但用起来的时候感觉却也不过如此.所以,不少人最终选择自己转换Bitmap. 当然,自己转Bi ...

  10. java与.net比较学习系列(6) 数组

    这一篇文章要总结的内容是数组,数组可以简单地看成是同种数据类型变量的集合,它在我们的开发中经常用到,我们主要从以下几个方面进行总结: 1,数组的创建和初始化 2,数组的访问和遍历 3,数组的总结 数组 ...