图表引擎AChartEngine 二
这几天项目涉及到android图表绘制,网上找的Demo都是大同小异,也就如上篇博文所写的一样是基本函数的实现。可是所有能找到的Demo都和设计图不符。木有办法,Leader发话啦,万不得已的情况下不能改设计图,顾客是上帝嘛。
AChartEngine这个开源框架已经做得非常不错了,可是在我几乎试完所有渲染效果都答不到自己预期的时候。那就只能——改源码咯!再此不得不佩服带我的师傅啊,大牛啊!再次也表达下对师傅的感激!
现目前用的是achartengine 1.1.0,为了满足特定需求,把achartengine源码的某些方法坐了修改,生成了自己的jar包。
1.重新修改了圆点的方法,自带的setfillPoint(false)中间会留有线。
2.隐藏了Y轴值,但是显示出了网格。(腾讯手机管家流量监控的图也是木有显示Y轴但是有背景网格)
3.给视图设置了显示范围。
public XYSeriesRenderer setXYSeriesRender(){//点线的渲染,返回 点线渲染 对象
XYSeriesRenderer pointRender=new XYSeriesRenderer();
pointRender.setPointStyle(PointStyle.CIRCLE);
pointRender.setFillPoints(false);
pointRender.setLineWidth(2f);
pointRender.setColor(Color.rgb(64,100 , 32));
pointRender.setDisplayChartValues(true);
pointRender.setChartValuesTextSize(25);
pointRender.setShowLegendItem(true);
pointRender.setDisplayChartValuesDistance(30);
pointRender.setChartValuesTextAlign(Align.CENTER);
pointRender.setChartValuesSpacing(12f);
return pointRender;
}
public void setXYMultipleSeriesRenderer(XYSeriesRenderer pointRender,int number ){//坐标轴图形整体渲染。传入的参数是 点线渲染 对象
multiRenderer.setChartTitle(chartName);//设置图表标题
multiRenderer.setYLabels(6);
multiRenderer.setXLabels(0);
setXLabels(xLabels); multiRenderer.setShowGrid(true);//显示网格
multiRenderer.setPointSize(3f);//设置点的大小 !
multiRenderer.setChartTitleTextSize(20);//设置图表标题文字的大小
multiRenderer.setLabelsTextSize(20);//设置标签的文字大小
multiRenderer.setXLabelsAlign(Align.CENTER);//刻度线与刻度标注之间的相对位置关系
multiRenderer.setPanEnabled(true, false);//允许左右拖动,但不允许上下拖动.
multiRenderer.setZoomEnabled(true);//设置允许放大缩小.
multiRenderer.setShowLegend(false);//不显示图例
multiRenderer.setYLabelsPadding(100f);//这样就看不到y坐标的值了
// 这个会限制Y值,因为我只需要X限制位置,下面搞定!
//multiRenderer.setXAxisMin(0d);//不过限制下Y其实也不错~!!
// multiRenderer.setXAxisMax(5d); multiRenderer.setShowCustomTextGrid(true);//可以显示竖条了! multiRenderer.setXLabelsColor(Color.rgb(64,100 , 32)); //设置整体渲染中图表区域内背景色
multiRenderer.setApplyBackgroundColor(true);
multiRenderer.setBackgroundColor(Color.WHITE );
multiRenderer.setMarginsColor(Color.WHITE); switch(number){
case 0:
multiRenderer.setRange(new double[]{0d, 5d, 30d,200d });
break;
ResultActivity.java
public void initGraphicalView(int number) {
String[] xlab = new String[] { "星期一", "星期二", "星期三", "星期四" }; switch (number) {
case 0:
value = new int[] { 70, 80, 70, 65 };
int[] valueh=new int[]{150,130,120,150};
chartDrawing = new ChartDrawing("收入/支出" , "日期", "数值",xlab);
chartDrawing.setXYSeries(value, "线一条线" );
chartDrawing.setXYMultipleSeriesRenderer(chartDrawing.setXYSeriesRender(), number);
chartDrawing .setXYSeries(valueh, "第二条线" );
chartDrawing .setXYMultipleSeriesRenderer(chartDrawing.setXYSeriesRender(), number);
lView = ChartFactory.getLineChartView(context,chartDrawing.multiDate, chartDrawing.multiRenderer);
layout0.addView(lView);
break;
如果想要下面这种效果,就按如下设置,就X轴默认,控制Y轴范围。
switch(number){
case 0:
// multiRenderer.setRange(new double[]{1d, 5d, 30d,200d });
multiRenderer.setYAxisMin(50d); //不限制X,即默认的x样子,限制Y的范围就OK啦
multiRenderer.setYAxisMax(100d);
break;
好啦,等项目忙完咯俺要来好好的学学AChartEngine这个开源框架~~~
记录下学习的点滴,也供以后自己回过头来复习复习~~
最后,时刻提醒自己一句话:学会去源码里找答案!~~加油!!
图表引擎AChartEngine 二的更多相关文章
- 安卓图表引擎AChartEngine(二) - 示例源码概述和分析
首先看一下示例中类之间的关系: 1. ChartDemo这个类是整个应用程序的入口,运行之后的效果显示一个list. 2. IDemoChart接口,这个接口定义了三个方法, getName()返回值 ...
- 安卓图表引擎AChartEngine(三) - 示例源码折线图、饼图和柱状图
折线图: package org.achartengine.chartdemo.demo.chart; import java.util.ArrayList; import java.util.Lis ...
- 安卓图表引擎AChartEngine(一) - 简介
AChartEngine 是一个安卓系统上制作图表的框架,目前它支持如下的图表类型: line chart (折线图) area chart (面积图:分区图,对比图) scatter chart ( ...
- 【开源项目10】安卓图表引擎AChartEngine
安卓图表引擎AChartEngine(一) - 简介 http://blog.csdn.net/lk_blog/article/details/7645509 安卓图表引擎AChartEngine(二 ...
- 安卓图表引擎AChartEngine(六) - 框架源码结构图
包结构: org.achartengine: org.achartengine.model: org.achartengine.renderer: org.achartengine.tools: 安卓 ...
- 安卓图表引擎AChartEngine(五) - Dataset和Render参数介绍
下面只讲解一个Renderer和一个DataSet,更多内容参看官方文档 DefaultRenderer: void addSeriesRenderer(int index, SimpleSeries ...
- 安卓图表引擎AChartEngine(四) - 源码示例 嵌入Acitivity中的折线图
前面几篇博客中都是调用ChartFactory.get***Intent()方法,本节讲的内容调用ChartFactory.get***View()方法,这个方法调用的结果可以嵌入到任何一个Activ ...
- Android图表引擎AChartEngine之折线图使用
最近在帮老师做一个课题,其中app端需要显示折线图以便直观地看数据波动,上网查了些资料后发现了这款图标引擎,另外感谢李坤老师的博客,帮助很大. 废话不多说,下面写代码. 一.AChartEngine是 ...
- 图表引擎AChartEngine 一
MainActivity.java package com.example.achartengine0; import org.achartengine.ChartFactory; import or ...
随机推荐
- VSTO 学习笔记(十一)开发Excel 2010 64位自定义公式
原文:VSTO 学习笔记(十一)开发Excel 2010 64位自定义公式 Excel包含很多公式,如数学.日期.文本.逻辑等公式,非常方便,可以灵活快捷的对数据进行处理,达到我们想要的效果.Exce ...
- hdu3622(二分+two-sat)
传送门:Bomb Game 题意:给n对炸弹可以放置的位置(每个位置为一个二维平面上的点),每次放置炸弹是时只能选择这一对中的其中一个点,每个炸弹爆炸的范围半径都一样,控制爆炸的半径使得所有的爆炸范围 ...
- 部署、收回和删除解决方式----STSADM和PowerShell
部署.收回和删除解决方式----STSADM和PowerShell 由于近期总是要部署wsp解决方式,所以常常要用到命令行或者PowerShell.所以有必要将命令集中放在这里.在部署 ...
- sql server2012附加的数据库问题
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMjM2NzUxMw==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...
- 使用COM提供SafeArray数据
在前一篇博文<读取SafeArray数据>我们介绍了C#读取安全数组.那么我们的COM怎么编写呢? 1. 定义SAFEARRAY变量 SAFEARRAY *pSArray = NULL; ...
- class 添加样式,删,开关 【选择】addClass,removeClass,toggleClass
<1> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>< ...
- 【译】ASP.NET MVC 5 教程 - 7:Edit方法和Edit视图详解
原文:[译]ASP.NET MVC 5 教程 - 7:Edit方法和Edit视图详解 在本节中,我们继续研究生成的Edit方法和视图.但在研究之前,我们先将 release date 弄得好看一点.打 ...
- 非洲儿童(南阳oj1036)(馋)
非洲小孩 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描写叙述 家住非洲的小孩,都非常黑.为什么呢? 第一.他们地处热带,太阳辐射严重. 第二,他们不常常洗澡.(常年缺水, ...
- mysql用户权限分配及主从同步复制
赋予wgdp用户查询权限: grant select on wg_dp.* to 'wgdp'@'%' IDENTIFIED BY 'weigou123'; grant all privileges ...
- My Solution: Word Ladder
public class Solution { public int ladderLength(String start, String end, Set<String> dict) { ...