现在的位置: 首页 > 综合 > 正文

画个饼图 – 在Android App中使用JFreeCharts(DroidCharts)

2012年08月22日 ⁄ 综合 ⁄ 共 4165字 ⁄ 字号 评论关闭

前几天在做一个Android app的时候,需要画一个饼图,直接用代码自己画一个当然也不会太复杂,但毕竟还是应该尽量避免重新发明轮子(有些愤青连这句话也要吐槽,好吧,加上一句,专业制造轮子的除外),在网上找了一圈下来,发现可用的库寥寥可数,aiCharts确实不错,可惜是商业化产品,免费试用的有水印,不太适合用在我的app里面,最后决定用DroidCharts,一个JFreeCharts的Android移植版本

 

目前DroidCharts已经实现了下面几种图:

  1. pie chart
  2. line chart
  3. xy line chart
  4. bar chart
  5. category bar chart

可惜文档资料不太齐全(快2年没更新了,很可能要太监),不过既然是移植自JFreeCharts,倒也不用担心使用上的问题,所以我还是选用它

 

官方网站目前只有源代码,这里是已经打好包的库,可以下载后作为第三方库加入app,步骤如下:

  1. 在工程所在目录中创建libs子目录
  2. 复制DroidCharts.jar到新建的libs目录下面
  3. 刷新Package Explorer,libs/DroidCharts.jar
  4. 打开工程的Java Build Path,选中Libraries选项卡,点击Add JARs...按钮,选择libs/DroidCharts.jar

 这时候可能会看到一行错误提示:

Error generating final archive: Found duplicate file for APK: res/layout/main.xml

 这是因为DroidCharts.jar包里面已经有layout名字叫main.xml,而当前应用的layout里面也有main.xml,没办法,这种情况下只能把自己的main.xml改个名字了

 

正常情况下,因为打包了DroidCharts库,这时候查看apk文件会发现长度增加了几百K

 

接下来增加一个PieChartView,继承自android.view.View

 

PieChartView.java

 

编辑layout的xml文件,把PieChartView加入layout

 

如:

 

要注意的是,这里必须写全名your.packet.name.PieChartView,否则抛出找不到类的异常

 

切回图形模式,可以看到PieChartView的预览窗口

 

 

 

顺便说一下,为了能在图形模式下能够正常预览PieChartView,我在ChartFactory.createPieChart时把title参数设为null,另外加了一行代码plot.setLabelFont(new Font()),否则在预览PieChartView的时候,将会因为绘制title和label缺乏默认字体对象而抛出空指针的异常(可能是DroidCharts的BUG)

 

 

感谢:

http://code.google.com/p/droidcharts/

http://w2davids.wordpress.com/creating-charts-with-droidcharts-for-android/

抱歉!评论已关闭.