Android 柱状图 统计图的实现
来源:互联网 发布:万网现在买域名送xyz 编辑:程序博客网 时间:2024/05/29 11:11
效果图如下:
实现步骤:
布局和jar包相关借鉴此文章
核心代码:
public class MounthOrderActivity extends BaseActivity { private LinearLayout rootView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_mounth_order); rootView = (LinearLayout) findViewById(R.id.rootView); // 点击导航栏的返回按钮的点击事件 Button back = (Button) findViewById(R.id.more_nav_bar_left_btn); back.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { finish(); } }); initData(); } /** * * @Description: 填充数据 * @Author: gyz * @Since: 2017-1-3上午11:24:26 */ private void initData() { ArrayList<ChartBean> list = new ArrayList<ChartBean>(); list.add(new ChartBean("德国悬液美学洗车", 168, "#04FE7C")); list.add(new ChartBean("除沥青", 68, "#8BBA00")); list.add(new ChartBean("真皮唤醒镀膜", 99, "#FF8E46")); list.add(new ChartBean("洗轮毂", 88, "#AFD8F8")); list.add(new ChartBean("日耳曼座舱革命", 99, "#03A9F4")); rootView.removeAllViews(); rootView.addView(getBarGraphView(this, list)); } private GraphicalView getBarGraphView(Context context, List<ChartBean> data) { int color = Color.parseColor("#4DBA7A"); XYMultipleSeriesDataset mDataset = new XYMultipleSeriesDataset(); XYSeries series = new XYSeries("本月订单统计"); for (int i = 0; i < data.size(); i++) { series.add(i + 1, data.get(i).value); } mDataset.addSeries(series); XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer();// mRenderer.setXTitle("\n\n\n\n服务条目");// 设置为X轴的标题// mRenderer.setYTitle("数量");// 设置y轴的标题// mRenderer.setAxisTitleTextSize(getResources().getDimension(R.dimen.tSize14));// 设置xy轴标题文本大小 mRenderer.setLabelsTextSize(getResources().getDimension(R.dimen.tSize8));// 设置标签的文字大小 mRenderer.setLegendTextSize(getResources().getDimension(R.dimen.tSize14));// 设置图例文本大小 mRenderer.setPointSize(10f);// 设置点的大小 mRenderer.setYAxisMin(0);// 设置y轴最小值是0 double maxValue = getMaxValue(data); mRenderer.setYAxisMax(11 * maxValue / 10); mRenderer.setXAxisMin(0); mRenderer.setXAxisMax(data.size() + 1); mRenderer.setShowGrid(true);// 显示网格 mRenderer.setBarSpacing(0.5); mRenderer.setPanEnabled(false, false);// 设置x方向可以滑动,y方向不可以滑动 mRenderer.setZoomEnabled(false, false);// 设置x,y方向都不可以放大或缩小 for (int i = 0; i < data.size(); i++) { mRenderer.addXTextLabel(i + 1, data.get(i).label); } mRenderer.setXLabels(0);// 设置只显示如1月,2月等替换后的东西,不显示1,2,3等 mRenderer.setMargins(new int[] { 20, 50, 50, 20 });// 设置视图位置 上 左 下 右 // 设置颜色 mRenderer.setXLabelsColor(color); mRenderer.setYLabelsColor(0, color); mRenderer.setMarginsColor(Color.WHITE); mRenderer.setLabelsColor(color); // 折线 XYSeriesRenderer r = new XYSeriesRenderer(); r.setColor(color);// 设置颜色 r.setPointStyle(PointStyle.CIRCLE);// 设置点的样式 r.setFillPoints(true);// 填充点(显示的点是空心还是实心) r.setDisplayChartValues(true);// 将点的值显示出来 r.setChartValuesSpacing(10);// 显示的点的值与图的距离 r.setChartValuesTextSize(getResources().getDimension(R.dimen.tSize14));// 点的值的文字大小 r.setLineWidth(3);// 设置线宽 mRenderer.addSeriesRenderer(r); GraphicalView view = ChartFactory.getBarChartView(context, mDataset, mRenderer, Type.DEFAULT); return view; } private double getMaxValue(List<ChartBean> data) { int max = Integer.MIN_VALUE; for (int i = 0; i < data.size(); i++) { if (data.get(i).value > max) { max = data.get(i).value; } } return max; }}
1 0
- Android 柱状图 统计图的实现
- 用asp+vml实现的立体统计图(一)-----柱状图
- 简易的饼状图,柱状图,统计图
- Android柱状图的实现
- Android自定义统计图(柱状图,折线图,饼状图)
- Android自定义统计图(柱状图,折线图,饼状图)
- Android自定义统计图(柱状图,折线图,饼状图)
- Android自定义统计图(柱状图,折线图,饼状图)
- Android自定义统计图(柱状图,折线图,饼状图)
- 简单js实现统计图(平面图、柱状图、圆形)
- wp7里实现饼状统计图 柱状图 曲线图
- wp7里实现饼状统计图 柱状图 曲线图
- (转)Android自定义统计图(柱状图,折线图,饼状图)
- Android集成统计图 饼状图 折线图 和 柱状图
- Android集成统计图 饼状图 折线图 和 柱状图
- jqplot统计图插件(柱状图)
- android柱状图和饼状图的的实现
- 不用任何控件的VML统计图(2)-柱状图
- pig
- kernel 中断分析之四——中断申请[上]
- 说说我对tomcat和servlet的理解
- getMeasuredWidth()导致java.lang.IllegalArgumentException异常
- java发送邮件demo
- Android 柱状图 统计图的实现
- Android Notifaction 从4.0到7.0
- memcache
- Android硬编码——音频编码、视频编码及音视频混合
- layui---弹层组件,日期控件,分页组件
- 使用PHP实现自动生成验证码
- 十六进制转八进制数
- JS 简单的拖拽移动效果
- 【ife】任务二十七:行星与飞船(二)