Android 实用hellocharts实现柱状图、线状图
2017-08-15 16:56
295 查看
1:Android Studio添加依赖
在app的build gradle中添加依赖
2:布局中
我这里是用的柱状图,线状图是linechartview
3:代码中
4:搞定!
在app的build gradle中添加依赖
compile 'com.github.lecho:hellocharts-library:1.5.8@aar'
2:布局中
我这里是用的柱状图,线状图是linechartview
<lecho.lib.hellocharts.view.ColumnChartView android:id="@+id/chart" android:layout_width="match_parent" android:layout_height="240dp" android:paddingTop="24dp"/>
3:代码中
@BindView(R.id.chart) ColumnChartView mChartView; public final static String[] xValues = new String[]{"", "第1月", "第2月", "第3月", "第4月"}; private int month; private SubcolumnValue subcolumnValue; ... @Override protected void initView(View view) { super.initView(view); initChartViews(); } @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) private void initChartViews() { List<Column> columnList = new ArrayList<>(); //柱子列表 List<SubcolumnValue> subcolumnValueList; //子柱列表(即一个柱子,因为一个柱子可分为多个子柱) List<AxisValue> axisValues = new ArrayList<>(); for (int i = 1; i <= xValues.length-1; i++) { subcolumnValueList = new ArrayList<>(); //获取数据处理 if (i == 1 || i == 0) { subcolumnValue = new SubcolumnValue(); subcolumnValue.setValue(5.8f); if (i <= month) { subcolumnValue.setColor(getResources().getColor(R.color.oval_red)); } else { subcolumnValue.setColor(getResources().getColor(R.color.charts_color)); } subcolumnValueList.add(subcolumnValue); } if (i == 2) { subcolumnValue = new SubcolumnValue(); subcolumnValue.setValue(6.0f); if (i <= month) { subcolumnValue.setColor(getResources().getColor(R.color.oval_red)); } else { subcolumnValue.setColor(getResources().getColor(R.color.charts_color)); } subcolumnValueList.add(subcolumnValue); } if (i >= 3) { subcolumnValue = new SubcolumnValue(); subcolumnValue.setValue(7.0f); if (i <= month) { subcolumnValue.setColor(getResources().getColor(R.color.oval_red)); } else { subcolumnValue.setColor(getResources().getColor(R.color.charts_color)); } subcolumnValueList.add(subcolumnValue); } Column column = new Column(subcolumnValueList); columnList.add(column); //是否有数据标注 column.setHasLabels(true);//☆☆☆☆☆设置列标签 //是否是点击圆柱才显示数据标注 column.setHasLabelsOnlyForSelected(true); //TODO 这一步是能让圆柱标注数据显示带小数的重要一步 ColumnChartValueFormatter chartValueFormatter = new SimpleColumnChartValueFormatter(1); column.setFormatter(chartValueFormatter); //给x轴坐标设置描述 axisValues.add(new AxisValue(i - 1).setLabel(xValues[i])); } //图形数据加载 ColumnChartData columnChartData = new ColumnChartData(columnList); mChartView.setZoomEnabled(false);//手势缩放 mChartView.setInteractive(true);//设置图表是可以交互的(拖拽,缩放等效果的前提) mChartView.setZoomType(ZoomType.HORIZONTAL);//设置缩放方向 Axis axisX = new Axis(axisValues);//x轴 Axis axisY = new Axis();//y轴 //是否显示网格线 axisY.setHasLines(true); axisY.hasLines(); axisX.setTextSize(12); // axisX.setName("时间/月"); // axisY.setName(getResources().getString(R.string.expect_income_tariff)); axisX.setTextColor(getResources().getColor(R.color.black_333)); axisY.setTextColor(getResources().getColor(R.color.black_333)); //设置倾斜显示在柱子内部 // axisX.setInside(true); // axisX.setHasTiltedLabels(true); columnChartData.setFillRatio(0.5F);//参数即为柱子宽度的倍数,范围只能在0到1之间 //设置显示的数据背景、字体颜色 columnChartData.setValueLabelsTextColor(getResources().getColor(R.color.black_333));// 设置数据文字颜色 columnChartData.setValueLabelBackgroundEnabled(false); columnChartData.setAxisXBottom(axisX); columnChartData.setAxisYLeft(axisY); //把数据放到控件中 mChartView.setColumnChartData(columnChartData); //设置竖线 Viewport v = new Viewport(mChartView.getMaximumViewport()); v.top = 7.2f; v.bottom = 5.4f; mChartView.setMaximumViewport(v); v.left = -0.5f; v.right = 6; mChartView.setCurrentViewport(v); }
4:搞定!
相关文章推荐
- Android 中最实用的动画效果实现
- [Android开发实用技巧]实现圆角Activity
- android实用技巧系列之顶部输入框的实现
- Android 简单最实用的方式实现ViewPager无限循环两种方式
- android实用技巧:android实现listview异步加载图片
- <Android开发代码库>achartengine实现柱状图、圆饼图、线图等
- Android上实现柱状图表
- Android 实现同个Activity中存在多个Fragment多次切换之后依次返回(二)(自维护栈的简单实用)
- Android实用笔记——使用Spinner实现下拉列表
- Android 实用方法 — 截屏与截长图功能的实现
- Android实用笔记——使用ViewPager实现导航
- Android实用笔记——使用ScrollView实现滚动效果
- Android实用笔记——使用ViewFlipper实现屏幕切换动画
- [AndroidUI]自定义view(五):实现动态柱状图
- Android上实现柱状图表 可实现边框矩形 没填充色
- Android实用笔记——使用ProgressBar实现进度条
- 【实用篇】Android之应用程序实现自动更新功能
- Android实用开发技巧之二:用Serializable方式及Parcelable方式实现Intent传递对象功能
- <Android开发代码库>achartengine实现柱状图、圆饼图、线图等
- 实现自定义android柱状图控件!可显示气温!可相应点击事件的回调!