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

Android上实现柱状图表

2012-09-18 09:18 387 查看
Android上实现柱状图算法实现

第一步:获取Android设备的屏幕大小

在View中获取Android设备屏幕大小的方法为:

WindowManager wm = (WindowManager) this.getcontext().getSystemService(context.WINDOW_SERVIcE);

Display display = wm.getDefaultDisplay();

int width = display.getWidth();

在Activity中获取Android设备屏幕大小的方法为:

DisplayMetrics displaymetrics = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);

int height = displaymetrics.heightPixels;

int wwidth = displaymetrics.widthPixels;

第二步:在View对象中使用canvas绘制蓝色边框与白色背景XY轴两条线

第三步:绘制柱状图标题

第四步:根据数据集计算出每个系列数据所占X轴的大小,来绘制X 数据名称

计算X轴中每个系列所占大小的代码为:

int count = series.getSeriescount();

int xUnit = (width - 2 - xOffset)/count;

第五步:根据数据集计算出数据单元大小,并将数据单元映射为像素单元,绘制出标尺单位与背景虚线

第六步:根据数据集的值来计算出柱状图的高度,以及柱状图的宽度大小,映射为像素值以后完成绘制。

其中xOffset, yOffset值计算公式如下:

int xOffset = (int)(width * 0.1);

int yOffset = (int)(height * 0.1);

int xOffset = (int)(width * 0.1);

int yOffset = (int)(height * 0.1);

计算每个系类中,每个柱状图之间缝隙大小的为:

int barWidth = (int)(xUnit/Math.pow(itemList.size(),2));

int startPos = xOffset + 2 + xPadding + xUnit*i;

int interval = barWidth/2;

其中barWidth表示每个柱状矩形的宽度,interval表示同一数据系列中表示每个矩形之间的间隔。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: