自定义View-轻量级柱状图、饼图、折线图
来源:互联网 发布:r语言导入csv数据 编辑:程序博客网 时间:2024/05/18 02:43
项目地址:
https://github.com/jigongdajiang/GjgChart
文章思路:
1.截图加解释
2.使用及实例代码
3.内部实现解析(自己看源码,有注释)
1.截图加解释
效果说明:设置好数据后柱子慢慢升起,拖动滚动条柱子高度自动变化,顶部文字跟着移动
效果说明:可以左右滑动,自动匹配数据集到图形,支持X轴标签选中及选中后的回调
效果说明:进入是饼图旋转,点击某个色块能谈起,支持点击回调
2.使用及实例代码
(1)柱状图的使用
//这里有些数据直接写死在View中了,使用时可对应修改也可将一些参数提供setXXX方法进行设置//准备饼设置每个柱子对应的数据的转换率histogramView.initData(new float[]{0.08f, 0.07f, 0.06f, 0.05f});//开启动画升起柱子histogramView.start(2);@Overridepublic void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { tv_money.setText(String.valueOf(1000 + progress * ((500000 - 1000) / seekBar.getMax()))); //根据滑动百分比改变柱子高度 histogramView.changeProgress(progress);}
(2)折线图的使用
private void refreshDataMouth() { //准备X轴的数据 List<String> xValues = new ArrayList<>(); for (int i = 0; i < 12; i++) { xValues.add((i + 1) + "月"); } //准备折线数据集合 List<LineData> lineDatas = new ArrayList<>(); LineData lineData1 = new LineData(); lineData1.setLineColor(Color.parseColor("#FF4657")); List<Float> lineData1Values = new ArrayList<>(); for(int i = 0;i<xValues.size();i++){ if(i<2){ lineData1Values.add(0.0f); }else{ Random r = new Random(); Float z = r.nextFloat() * 100; lineData1Values.add(z); } } lineData1.setLineValues(lineData1Values); lineDatas.add(lineData1); //......这里主要是制造假数据,真实数据模仿封装 //设置折线数据 try { lineChart.setDataResource(xValues,lineDatas,8); //设置监听 lineChart.setOnTabSelectedListener(new LineChartView.onTabSelectedListener() { @Override public void onTabSelected(int position, String xValue, List<Float> yData) { To } catch (Exception e) { e.printStackTrace(); }}
(3)饼状图使用
//初始化颜色集合colors = new ArrayList<>();colors.add(android.R.color.holo_blue_light);colors.add(android.R.color.holo_green_light);colors.add(android.R.color.holo_red_light);colors.add(android.R.color.holo_purple);//准备数据集合values = new ArrayList<>();random = new Random();values.add(random.nextDouble()*100);values.add(random.nextDouble()*100);values.add(random.nextDouble()*100);values.add(random.nextDouble()*100);//设置数据和颜色集合piechart.setDatas(values,colors);//设置监听piechart.setOnItemChangedListener(new PieChartView.OnItemChangedListener() { @Override public void onItemChanged(int index, double value) { txtData.setText("index: " +index+ " value: "+value ); } });
阅读全文
0 0
- 自定义View-轻量级柱状图、饼图、折线图
- 自定义折线图/柱状图
- Android自定义View实现简单的折线图、柱状图
- 自定义View-柱状图和折线图的合体
- 自定义View--折线图
- 自定义View折线图
- 自定义View折线图
- 折线图 自定义折线图 自定义view
- Android自定义统计图(柱状图,折线图,饼状图)
- Android自定义统计图(柱状图,折线图,饼状图)
- Android自定义统计图(柱状图,折线图,饼状图)
- Android自定义统计图(柱状图,折线图,饼状图)
- Android自定义统计图(柱状图,折线图,饼状图)
- JFreeChart折线图,饼图,柱状图
- JFreeChart折线图,饼图,柱状图
- 折线图+(饼图、柱状图)
- 自定义View之折线图
- 自定义View,画折线图
- ResNet解读
- java发送http的get、post请求
- HDU 1072
- Java并行计算框架Fork/Join
- c++实现三维向量的操作
- 自定义View-轻量级柱状图、饼图、折线图
- QtXlsxWriter---Qt操作excel文件
- 提取回文数
- cout问题
- mac 在php工程中实现curl的https访问
- day6-socket编程C/S模型
- 小程序----路由(2)
- Altium Designer中测量Gerber文件两个点之间的距离
- 子父类构造代码块/静态代码块/普通代码块执行顺序....(涉及父类静态中再次创建子类对象的特殊情况)