Android Chart框架 MPAndroidChart學(xué)習(xí)筆記11_圖表的設(shè)置和樣式

Android Chart框架 MPAndroidChart學(xué)習(xí)筆記11_圖表的設(shè)置和樣式


源碼demo看這里

這里是項(xiàng)目源碼

1.刷新圖表

  • invalidate():用來(lái)刷新圖表

  • notifyDataSetChanged():圖表底層數(shù)據(jù)變化之后調(diào)用此方法進(jìn)行刷新

2.Logging

調(diào)用setLogEnabled(boolean enabled)方法傳入True可以設(shè)置圖標(biāo)logcat輸出,但是考慮到性能我們一般不設(shè)置

3.一般圖標(biāo)設(shè)置

  • setBackgroundColor(int color)設(shè)置圖標(biāo)背景顏色,當(dāng)然也可以在xml文件中設(shè)置。
/* @描述 圖表的基本設(shè)置 */
private void setGeneralStyling(BarChart chart) {
    //設(shè)置背景
    chart.setBackgroundColor(getResources().getColor(R.color.colorPrimary));
}
設(shè)置背景
  • setDescription(Description desc)設(shè)置chart描述:
//設(shè)置圖表右下角出現(xiàn)的說(shuō)明文本,以及說(shuō)明文本的基本設(shè)置。
//初始化一個(gè)Description對(duì)象
Description desc=new Description();
//設(shè)置文本內(nèi)容
desc.setText(getString(R.string.desc));
//設(shè)置文本大小
desc.setTextSize(20f);
//設(shè)置文本顏色
desc.setTextColor(Color.WHITE);
//設(shè)置文本位置,文本右上角相對(duì)于(0,0)的坐標(biāo)位置
desc.setPosition(400f,400f);
//引入說(shuō)明文本
chart.setDescription(desc);
設(shè)置說(shuō)明文本
  • setNoDataText(String text)設(shè)置沒(méi)有數(shù)據(jù)時(shí)候顯示的文本:

      //設(shè)置圖表數(shù)據(jù)為空時(shí)候的文本
      chart.setNoDataText(getString(R.string.Nodata));
    
設(shè)置圖表數(shù)據(jù)為空時(shí)候的文本
  • 設(shè)置網(wǎng)格背景:
//是否繪制圖表背景的網(wǎng)格(開(kāi)關(guān),如果設(shè)置為false那么網(wǎng)格設(shè)置都失效)
chart.setDrawGridBackground(true);
//設(shè)置網(wǎng)格背景顏色
chart.setGridBackgroundColor(Color.YELLOW);
  • 設(shè)置邊框
//設(shè)置邊框開(kāi)關(guān)
chart.setDrawBorders(true);
//設(shè)置邊框顏色
chart.setBorderColor(Color.CYAN);
//設(shè)置邊框?qū)挾?chart.setBorderWidth(20f);
  • 設(shè)置圖表上最大可見(jiàn)繪制值標(biāo)簽的數(shù)目
//設(shè)置圖表上最大可見(jiàn)繪制值標(biāo)簽的數(shù)目。這只需要影響setdrawvalues()時(shí)啟用。
chart.setMaxVisibleValueCount(30);

4.特殊圖標(biāo)樣式設(shè)置

Line-, Bar-, Scatter-, Candle- & BubbleChart

  • setAutoScaleMinMaxEnabled(boolean enabled)如果設(shè)置為true,自動(dòng)去匹配chart數(shù)據(jù)的最小值與最大值,默認(rèn)為false
  • setKeepPositionOnRotation(boolean enabled)設(shè)置為true那么圖標(biāo)在放大之后無(wú)法進(jìn)行拖拽,默認(rèn)為false
//用來(lái)描述Y軸的顯示,如果設(shè)置為true,那么Y軸會(huì)顯示X變化范圍內(nèi)Y值最大的變化范圍
chart.setAutoScaleMinMaxEnabled(false);
//設(shè)置為true那么圖標(biāo)在放大之后無(wú)法進(jìn)行拖拽,默認(rèn)為false。
chart.setKeepPositionOnRotation(false);

BarChart

  • setDrawValueAboveBar(boolean enabled)如果設(shè)置為true,那么所有的值都會(huì)顯示在bar的上方,而不是在頂部。
    -setDrawBarShadow(boolean enabled)是否顯示bar后方的一個(gè)陰影,以降低40%的性能?
//默認(rèn)在bar的頂部,設(shè)置為true之后就會(huì)顯示在bar上方
chart.setDrawValueAboveBar(true);
//是否顯示bar后方的一個(gè)陰影,以降低40%的性能?
chart.setDrawBarShadow(false);
setDrawValueAboveBar

PieChart

//設(shè)置餅快的標(biāo)簽
mChart.setDrawSliceText(true);
//設(shè)置為true,那么餅塊的內(nèi)容會(huì)按照相應(yīng)數(shù)據(jù)的百分比顯示,否則顯示實(shí)際值
mChart.setUsePercentValues(false);
//設(shè)置中心文字
mChart.setCenterText(getString(R.string.centerText));
//可以理解為設(shè)置中心文字的區(qū)域?qū)挾龋绻淖殖^(guò)寬度會(huì)進(jìn)行換行
// 實(shí)際計(jì)算為內(nèi)徑的按照百分比縮小后作為中心文字區(qū)域的寬度
mChart.setCenterTextRadiusPercent(20f);
//可以理解為設(shè)置內(nèi)徑
mChart.setHoleRadius(40f);
//設(shè)置半透明圈的半徑
mChart.setTransparentCircleRadius(50f);
//設(shè)置半透明圈的顏色
mChart.setTransparentCircleColor(getResources().getColor(R.color.colorPrimary));
//設(shè)置半透明圈的透明度[0~255]
mChart.setTransparentCircleAlpha(99);
//設(shè)置餅圖的最大角度:默認(rèn)為360°
mChart.setMaxAngle(90f);

當(dāng)然你如果想要也可以這樣:

//設(shè)置餅快的標(biāo)簽
mChart.setDrawSliceText(true);
//設(shè)置為true,那么餅塊的內(nèi)容會(huì)按照相應(yīng)數(shù)據(jù)的百分比顯示,否則顯示實(shí)際值
mChart.setUsePercentValues(false);
//設(shè)置中心文字
//mChart.setCenterText(getString(R.string.centerText));
//可以理解為設(shè)置中心文字的區(qū)域?qū)挾?,如果文字超過(guò)寬度會(huì)進(jìn)行換行
// 實(shí)際計(jì)算為內(nèi)徑的按照百分比縮小后作為中心文字區(qū)域的寬度
mChart.setCenterTextRadiusPercent(50f);
//可以理解為設(shè)置內(nèi)徑
mChart.setHoleRadius(10f);
//設(shè)置半透明圈的半徑
mChart.setTransparentCircleRadius(10f);
//設(shè)置半透明圈的顏色
mChart.setTransparentCircleColor(getResources().getColor(R.color.colorPrimary));
//設(shè)置半透明圈的透明度[0~255]
mChart.setTransparentCircleAlpha(99);
//設(shè)置餅圖的最大角度:默認(rèn)為360°
mChart.setMaxAngle(120f);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,653評(píng)論 19 139
  • 內(nèi)容抽屜菜單ListViewWebViewSwitchButton按鈕點(diǎn)贊按鈕進(jìn)度條TabLayout圖標(biāo)下拉刷新...
    皇小弟閱讀 47,170評(píng)論 22 665
  • MPAndroidChart是一款基于Android的開(kāi)源圖表庫(kù),MPAndroidChart不僅可以在Andro...
    Code4Android閱讀 24,008評(píng)論 23 66
  • 那里有間小酒館 墻壁上寫(xiě)滿詩(shī)和遠(yuǎn)方 有個(gè)孤獨(dú)的孩子在唱 你是我心愛(ài)的姑娘 那里的夜晚沒(méi)有燈光 只有滿天繁星和月亮 ...
    秀道lee閱讀 206評(píng)論 0 4
  • 那年輟學(xué),我以為您會(huì)打我, 可是您沒(méi)有。 那年相親,我百般刁難,我以為您會(huì)罵我, 可是您沒(méi)有。 那年您生病,我沒(méi)去...
    天使嘟嘟閱讀 176評(píng)論 0 0

友情鏈接更多精彩內(nèi)容