# OXChart **Repository Path**: xq214/OXChart ## Basic Information - **Project Name**: OXChart - **Description**: OXChartOXChartOXChartOXChart - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-06-04 - **Last Updated**: 2021-06-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## OXChart [![](https://img.shields.io/badge/license-Apache%202-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)   [![](https://img.shields.io/badge/version-1.0.2-yellow.svg)](https://bintray.com/oxo1/maven/OXViewLib/1.0.2) > 自定义图标库,使用方便,扩展性强,后续会添加更多开发中使用到的图表 ## 类库接入 build.gradle中添加依赖: ```xml implementation 'com.openxu.viewlib:OXViewLib:' ``` 指定java版本,否则会报错: android { ... compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } ... } ## 图表使用 ### 1、南丁格尔玫瑰图 NightingaleRoseChart ![](readmePic/pic1.gif "南丁格尔玫瑰图") ```xml ``` ```Java NightingaleRoseChart roseChartSmall = (NightingaleRoseChart)findViewById(R.id.roseChartSmall); roseChartSmall.setShowChartLable(true); //是否在图表上显示指示lable roseChartSmall.setShowChartNum(false); //是否在图表上显示指示num roseChartSmall.setShowNumTouched(false); //点击显示数量 roseChartSmall.setShowRightNum(true); //右侧显示数量 roseList.add(new RoseBean(10, "数据1")); roseList.add(new RoseBean(13, "数据2")); roseList.add(new RoseBean(31, "数据3")); roseList.add(new RoseBean(8, "数据4")); roseList.add(new RoseBean(21, "数据5")); //参数1:数据对象class, 参数2:数量属性字段名称, 参数3:名称属性字段名称, 参数4:数据集合 roseChartSmall.setData(RoseBean.class, "count", "ClassName", roseList); roseChartSmall.setLoading(false);//是否正在加载,数据加载完毕后置为false ``` ### 2、占比饼状图表 PieChartLayout ![](readmePic/pic2.gif "占比饼状图表") ```xml ``` ```Java PieChartLayout pieChart1 = (PieChartLayout)findViewById(R.id.pieChart1); /* * 圆环宽度 * ringWidth > 0 :空心圆环,内环为白色,可以在内环中绘制字 * ringWidth <=0 :实心 */ pieChart1.setRingWidth(DensityUtil.dip2px(this, 15)); pieChart1.setLineLenth(DensityUtil.dip2px(this, 8)); // //指示线长度 pieChart1.setTagModul(PieChartLayout.TAG_MODUL.MODUL_CHART); //在扇形图上显示tag pieChart1.setDebug(false); pieChart1.setLoading(true); //请求数据 List datalist = new ArrayList<>(); datalist.add(new PieChartBean(20, "理发屋")); datalist.add(new PieChartBean(20, "KTV")); //显示在中间的lable List tableList = new ArrayList<>(); tableList.add(new ChartLable("建筑", DensityUtil.sp2px(this, 12), getResources().getColor(R.color.text_color_light_gray))); tableList.add(new ChartLable("性质", DensityUtil.sp2px(this, 12), getResources().getColor(R.color.text_color_light_gray))); pieChart1.setLoading(false); //参数1:数据类型 参数2:数量字段名称 参数3:名称字段 参数4:数据集合 参数5:lable集合 pieChart1.setChartData(PieChartBean.class, "Numner", "Name",datalist ,tableList); ``` ### 3、进度环形图 ProgressPieChart ![](readmePic/pic3.gif "进度环形图") ```xml ``` ```Java ProgressPieChart chart1 = (ProgressPieChart)findViewById(R.id.chart1); chart1.setProSize(DensityUtil.dip2px(this, 5)); //圆环宽度 chart1.setDebug(false); chart1.setLoading(false); chart1.setProColor(Color.parseColor("#ff0000")); //进度颜色 //环形中间显示的lable List lables = new ArrayList<>(); lables.add(new ChartLable("60.0%", DensityUtil.sp2px(this, 12), Color.parseColor("#ff0000"))); lables.add(new ChartLable("完成率", DensityUtil.sp2px(this, 8), getResources().getColor(R.color.text_color_light_gray))); chart1.setData(100, 60, lables); ``` ### 4、纵向柱状图 BarVerticalChart ![](readmePic/pic4.gif "纵向柱状图") ```xml ``` ```Java BarVerticalChart chart1 = (BarVerticalChart)findViewById(R.id.chart1); chart1.setBarSpace(DensityUtil.dip2px(this, 1)); //双柱间距 chart1.setBarItemSpace(DensityUtil.dip2px(this, 20)); //柱间距 chart1.setDebug(false); chart1.setBarNum(2); //一组柱子数量 chart1.setBarColor(new int[]{Color.parseColor("#5F93E7"),Color.parseColor("#F28D02")}); //X轴 List strXList = new ArrayList<>(); //柱状图数据 List> dataList = new ArrayList<>(); for(int i = 0; i<5; i++){ //此集合为柱状图上一条数据,集合中包含几个实体就是几个柱子 List list = new ArrayList<>(); list.add(new BarBean(random.nextInt(30), "接入系统")); list.add(new BarBean(random.nextInt(20), "审核信息")); dataList.add(list); strXList.add((i+1)+"月"); } chart1.setLoading(false); chart1.setData(dataList, strXList); ``` ### 5、横向柱状图 BarHorizontalChart ![](readmePic/pic5.gif "横向柱状图") ```xml ``` ```Java BarHorizontalChart chart1 = (BarHorizontalChart)findViewById(R.id.chart1); chart1.setBarSpace(DensityUtil.dip2px(this, 1)); //双柱间距 chart1.setBarItemSpace(DensityUtil.dip2px(this, 20)); //柱间距 chart1.setDebug(false); chart1.setBarNum(3); chart1.setBarColor(new int[]{Color.parseColor("#5F93E7"),Color.parseColor("#F28D02")}); //X轴 List strXList = new ArrayList<>(); //柱状图数据 List> dataList = new ArrayList<>(); for(int i = 0; i<100; i++){ //此集合为柱状图上一条数据,集合中包含几个实体就是几个柱子 List list = new ArrayList<>(); list.add(new BarBean(random.nextInt(30), "lable1")); list.add(new BarBean(random.nextInt(20), "lable2")); dataList.add(list); strXList.add((i+1)+"月"); } chart1.setLoading(false); chart1.setData(dataList, strXList); ```