您的位置:首页 > 移动开发 > Android开发

Android使用j4lChartAndroid插件绘制3D饼图

2015-06-25 09:50 423 查看
图表是常见的直观表示数据的途径,目前在android手机上绘制图表基本有两种方法:一是利用java的canvas自己绘制,这种方法自己可操作性强,可以随心所欲地绘制,但是缺点就是工作量大;二是利用第三方插件。本文将给大家介绍一下利用第三方插件j4lChartAndroid如何绘制一个3D饼图。效果如图:



提供j4lChartAndroid.jar文件 点击打开链接 也可以下载文章最后的demo,里面也有这个插件。

奉上主体绘制图表的函数

public static Chart TheChart()
{
//new出来一个图饼的对象, 参数简介1.所占的比例 2.颜色 3.是否分组(是否种其他的块是分开的) 4.文字介绍
PieDataSerie pds = new PieDataSerie(values, fillStyleColor,
groupValues, null);
//设置label的样式
pds.valueFont = GraphicsProvider.getFont("Arial", ChartFont.PLAIN, 20);
//设置label到中心的距离
pds.textDistanceToCenter = 1.4;

//设置图饼的标题
Title title = new Title("理财账户");
//开始绘图
PiePlotter pp = new PiePlotter();
//设置3D效果为true
pp.effect3D = true;
//设置边框
pp.border = new LineStyle(1,GraphicsProvider.getColor(ChartColor.BLACK),LineStyle.LINE_NORMAL);
//设置label的格式(#PERCENTAGE#,#VALUE#,#LABEL#)什么也不想显示的话直接“ ”里面有一个空格就可以了
pp.labelFormat = "#PERCENTAGE#";
//设置半径
pp.radiusModifier = 1.5;
//设置块与块之间的间隔
pp.space = 10;
//设置label到块之间的线的样式
pp.labelLine = new LineStyle(1,GraphicsProvider.getColor(ChartColor.BLACK),LineStyle.LINE_NORMAL);

//生成一个对象
Legend legend = new Legend();
//因为我这里不需要解说,所以设置它为" ",中间有空格,没有空格的话,会出现多余的文字
legend.legendLabel="";
for (int i = 0; i < values.length; i++)
{
legend.addItem(lableName[i], new FillStyle(color[i]));
}
//new一个图表对象,用来存放生成的图饼
com.java4less.rchart.Chart chart = new com.java4less.rchart.Chart(title, pp, null, null);
chart.layout = com.java4less.rchart.Chart.LAYOUT_LEGEND_TOP;
chart.back = new FillStyle(GraphicsProvider.getColor(ChartColor.WHITE));
chart.topMargin = 0.2;
chart.bottomMargin = 0.1;
chart.leftMargin =0.1;
chart.legend = legend;
chart.setHeight(width/3*2);
chart.setWidth(height/3*2);
chart.addSerie(pds);
return chart;
}
细心的小伙伴会发现,在图例的最上方有个讨厌的水印,去掉它很简单,在代码
legend.legendLabel="";
需要在引号中加个空格,否则无论赋什么值都会有这个水印

使用这个函数,除了准备数据等初值之外,还需声明一个chartpanel,用chartpanel的setchart方法将该函数返回的chart传进去,再将这个chartpanel添加到linearlayout中显示。最后注意,在页面销毁时要chartpanel.getChart().stopUpdater(),如果需要刷新饼图,首先要先清除掉linearlayout中的view,再重新添加

最后奉上自己的demo ,如有不足之处,还望大家指出!点击打开链接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: