AChartEngine应用之PieChart(动态饼图,允许产生动态数据并显示)
1.设置DefaultRenderer
DefaultRenderer mRenderer = new DefaultRenderer();// PieChart的主要描绘器
mRenderer = new DefaultRenderer();// 创建一个描绘器的实例,将被用来创建图表
mRenderer.setZoomButtonsVisible(true);// 显示放大缩小功能按钮
mRenderer.setStartAngle(180);// 设置为水平开始
mRenderer.setDisplayValues(true);// 显示数据
// mRenderer.setFitLegend(false);// 设置是否显示图例
// mRenderer.setLegendTextSize(10);// 设置图例字体大小
// mRenderer.setLegendHeight(10);// 设置图例高度
mRenderer.setShowLegend(false);// 默认是显示的需要关闭,因为动态更新数据的时候,图例更新慢
mRenderer.setChartTitle("饼图示例");// 设置饼图标题
mRenderer.setChartTitleTextSize(14);// 设置饼图标题大小
?
2.构建数据源CategorySeriesfor (int i = 0; i < data.length; i++)
VALUE += data[i];
for (int i = 0; i < data.length; i++) {
mSeries.add("示例 " + (i + 1), data[i] / VALUE);// 设置种类名称和对应的数值,前面是(key,value)键值对
SimpleSeriesRenderer renderer = new SimpleSeriesRenderer();
if (i < COLORS.length) {
renderer.setColor(COLORS[i]);// 设置描绘器的颜色
} else {
renderer.setColor(getRandomColor());// 设置描绘器的颜色
}
renderer.setChartValuesFormat(NumberFormat.getPercentInstance());// 设置百分比
mRenderer.setChartTitleTextSize(14);// 设置饼图标题大小
mRenderer.addSeriesRenderer(renderer);// 将最新的描绘器添加到DefaultRenderer中
}
?
3.通过ChartFactory获取饼图mChartView = ChartFactory.getPieChartView(getApplicationContext(),
mSeries, mRenderer);// 构建mChartView
mRenderer.setClickEnabled(true);// 允许点击事件
mChartView.setOnClickListener(new View.OnClickListener() {// 具体内容
}
4.构建定时器任务handler = new Handler() {// 这里的Handler实例将配合下面的Timer实例,完成定时更新图表的功能
@Override
public void handleMessage(Message msg) {
if (msg.what == 1) {
updateChart();// 刷新图表具体方法 Handler将此并入主线程
}
super.handleMessage(msg);
}
};
task = new TimerTask() {
@Override
public void run() {//通过消息更新
Log.i("task", " task ok ");
Message message = new Message();
message.what = 1;//消息定义标志
handler.sendMessage(message);
}
};
timer.schedule(task, 500, 1000 * 10);//执行任务
?
效果图:
code:
?
?
如果有哪位朋友想到更合适的方法,可以一起研究研究。。。。
完整项目:http://download.csdn.net/detail/qiu_11/18370487
?
未完待续。。。。
?
AChartEngine应用系列文章
?
?
?
?
(一)AChartEngine简介
(二)AChartEngine应用之PieChart(饼图)
(三)AChartEngine应用之BarChart(柱形图)
(四)AChartEngine应用之PieChart(动态饼图,允许产生动态数据并显示)
(五)AChartEngine应用之LineChart(模拟生命特征值图)
?