MPAndroidChart学习笔记

没错!还是去年的这个时候的笔记,存一下。

核心功能:

 

支持xy轴缩放

支持拖拽

支持手指滑动

支持高亮显示

支持保存图表到文件中

支持从文件(txt)中读取数据

预先定义颜色模板

自动生成标注

支持自定义xy轴的显示标签

支持xy轴动画

支持xy轴设置最大值和附加信息

支持自定义字体,颜色,背景,手势,虚线等

 

主要的Api方法:

 

setDescription(String desc): 设置表格的描述

setDescriptionTypeface(Typefacet) :自定义表格中显示的字体

setDrawYValues(booleanenabled) : 设置是否显示y轴的值的数据

setValuePaintColor(intcolor) :设置表格中y轴的值的颜色,但是必须设置setDrawYValuestrue

setValueTypeface(Typefacet):设置字体

setValueFormatter(DecimalFormatformat) : 设置显示的格式

setPaint(Paint p, intwhich) : 自定义笔刷

public ChartDatagetDataCurrent() :返回ChartData对象当前显示的图表。它包含了所有信息的显示值最小和最大值等

public float getYChartMin(): 返回当前最小值

public float getYChartMax(): 返回当前最大值

public float getAverage() :返回所有值的平均值。

public float getAverage(inttype) : 返回平均值

public PointF getCenter() :返回中间点

public Paint getPaint(intwhich) : 得到笔刷

setTouchEnabled(booleanenabled) : 设置是否可以触摸,如为false,则不能拖动,缩放等

setDragScaleEnabled(booleanenabled) : 设置是否可以拖拽,缩放

setOnChartValueSelectedListener(OnChartValueSelectedListenerl): 设置表格上的点,被点击的时候,的回调函数

setHighlightEnabled(booleanenabled) : 设置点击value的时候,是否高亮显示

public voidhighlightValues(Highlight[] highs) : 设置高亮显示

saveToGallery(String title): 保存图表到图库中

saveToPath(String title,String pathOnSD) : 保存.

setScaleMinima(float x,float y) : 设置最小的缩放

centerViewPort(int xIndex,float val) : 设置视口

fitScreen() : 适应屏幕

 


 

// 设置 pieChart 图表基本属性 

mChart.setUsePercentValues(false);            //使用百分比显示 

mChart.getDescription().setEnabled(false);    //设置pieChart图表的描述 

mChart.setBackgroundColor(Color.YELLOW);      //设置pieChart图表背景色 

mChart.setExtraOffsets(5,10, 60, 10);        //设置pieChart图表上下左右的偏移,类似于外边距 

mChart.setDragDecelerationFrictionCoef(0.95f);//设置pieChart图表转动阻力摩擦系数[0,1] 

mChart.setRotationAngle(0);                   //设置pieChart图表起始角度 

mChart.setRotationEnabled(true);              //设置pieChart图表是否可以手动旋转 

mChart.setHighlightPerTapEnabled(true);       //设置piecahrt图表点击Item高亮是否可用 

mChart.animateY(1400,Easing.EasingOption.EaseInOutQuad);// 设置pieChart图表展示动画效果 

 

// 设置 pieChart 图表Item文本属性 

mChart.setDrawEntryLabels(true);              //设置pieChart是否只显示饼图上百分比不显示文字(true:下面属性才有效果) 

mChart.setEntryLabelColor(Color.WHITE);       //设置pieChart图表文本字体颜色 

mChart.setEntryLabelTypeface(mTfRegular);     //设置pieChart图表文本字体样式 

mChart.setEntryLabelTextSize(10f);            //设置pieChart图表文本字体大小 

 

// 设置 pieChart 内部圆环属性 

mChart.setDrawHoleEnabled(true);              //是否显示PieChart内部圆环(true:下面属性才有意义

mChart.setHoleRadius(28f);                    //设置PieChart内部圆的半径(这里设置28.0f) 

mChart.setTransparentCircleRadius(31f);       //设置PieChart内部透明圆的半径(这里设置31.0f) 

mChart.setTransparentCircleColor(Color.BLACK);//设置PieChart内部透明圆与内部圆间距(31f-28f)填充颜色 

mChart.setTransparentCircleAlpha(50);         //设置PieChart内部透明圆与内部圆间距(31f-28f)透明度[0~255]数值越小越透明 

mChart.setHoleColor(Color.WHITE);             //设置PieChart内部圆的颜色 

mChart.setDrawCenterText(true);               //是否绘制PieChart内部中心文本(true:下面属性才有意义) 

mChart.setCenterTextTypeface(mTfLight);       //设置PieChart内部圆文字的字体样式 

mChart.setCenterText("Test");                 //设置PieChart内部圆文字的内容 

mChart.setCenterTextSize(10f);                //设置PieChart内部圆文字的大小 

mChart.setCenterTextColor(Color.RED);         //设置PieChart内部圆文字的颜色 

 

// pieChart添加数据 

setData(); 

 

// 获取pieCahrt图列 

Legend l = mChart.getLegend(); 

l.setEnabled(true);                    //是否启用图列(true:下面属性才有意义) 

l.setVerticalAlignment(Legend.LegendVerticalAlignment.TOP);   

l.setHorizontalAlignment(Legend.LegendHorizontalAlignment.RIGHT); 

l.setOrientation(Legend.LegendOrientation.VERTICAL); 

l.setForm(Legend.LegendForm.DEFAULT);//设置图例的形状 

l.setFormSize(10);                    //设置图例的大小 

l.setFormToTextSpace(10f);            //设置每个图例实体中标签和形状之间的间距 

l.setDrawInside(false); 

l.setWordWrapEnabled(true);           //设置图列换行(注意使用影响性能,仅适用legend位于图表下面

l.setXEntrySpace(10f);                //设置图例实体之间延X轴的间距(setOrientation = HORIZONTAL有效) 

l.setYEntrySpace(8f);                 //设置图例实体之间延Y轴的间距(setOrientation = VERTICAL 有效) 

l.setYOffset(0f);                     //设置比例块Y轴偏移量 

l.setTextSize(14f);                   //设置图例标签文本的大小 

l.setTextColor(Color.parseColor("#ff9933"));//设置图例标签文本的颜色 

 

//pieChart 选择监听 

mChart.setOnChartValueSelectedListener(this); 

 

//设置MARKERVIEW 

CustomMarkerView mv = newCustomMarkerView(this, new PercentFormatter()); 

mv.setChartView(mChart); 

mChart.setMarker(mv); 

 

/**

  * 设置饼图的数据

  */ 

private void setData(){ 

    ArrayList<PieEntry> pieEntryList =new ArrayList<PieEntry>(); 

    ArrayList<Integer> colors = newArrayList<Integer>(); 

   colors.add(Color.parseColor("#f17548")); 

   colors.add(Color.parseColor("#FF9933")); 

    //饼图实体 PieEntry 

    PieEntry CashBalance = new PieEntry(70,"现金余额 1500"); 

    PieEntry ConsumptionBalance = newPieEntry(30, "消费余额 768"); 

    pieEntryList.add(CashBalance); 

    pieEntryList.add(ConsumptionBalance); 

    //饼状图数据集 PieDataSet 

    PieDataSet pieDataSet = newPieDataSet(pieEntryList, "资产总览"); 

    pieDataSet.setSliceSpace(3f);           //设置饼状Item之间的间隙 

    pieDataSet.setSelectionShift(10f);      //设置饼状Item被选中时变化的距离 

    pieDataSet.setColors(colors);           //DataSet中的数据匹配上颜色集(饼图Item颜色

    //最终数据 PieData 

    PieData pieData = new PieData(pieDataSet); 

    pieData.setDrawValues(true);            //设置是否显示数据实体(百分比,true:以下属性才有意义

    pieData.setValueTextColor(Color.BLUE);  //设置所有DataSet内数据实体(百分比)的文本颜色 

    pieData.setValueTextSize(12f);          //设置所有DataSet内数据实体(百分比)的文本字体大小 

    pieData.setValueTypeface(mTfLight);     //设置所有DataSet内数据实体(百分比)的文本字体样式 

    pieData.setValueFormatter(newPercentFormatter());//设置所有DataSet内数据实体(百分比)的文本字体格式 

    mChart.setData(pieData); 

    mChart.highlightValues(null); 

    mChart.invalidate();                    //将图表重绘以显示设置的属性和数据 

 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值