Android上实现柱状图表 可实现边框矩形 没
第一步:
获取Android设备的屏幕大小
第二步:
在View对象中使用Canvas绘制蓝色边框与白色背景XY轴两条线,代码如下
第三步:
绘制柱状图标题
第四步:
根据数据集计算出每个系列数据所占X轴的大小,来绘制X 数据名称
第五步:
根据数据集计算出数据单元大小,并将数据单元映射为像素单元,绘制出标尺单位与
背景虚线
第六步:
根据数据集的值来计算出柱状图的高度,以及柱状图的宽度大小,映射为像素值以后
完成绘制。
程序效果图:
技术点详解:
在View中获取Android设备屏幕大小的方法为:
[java] view plaincopy
// get default screen size from system service
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;
- 计算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 barWidth = (int)(xUnit/Math.pow(itemList.size(),2));
int startPos = xOffset + 2 + xPadding + xUnit*i;
int interval = barWidth/2;
- 其中barWidth表示每个柱状矩形的宽度,interval表示同一数据系列中表示
[java] view plaincopy
[java] view plaincopy
[java] view plaincopy
[java] view plaincopy
每个矩形之间的间隔。