1. 程式人生 > >Android MpAndroidchart使用流程和坑--餅狀圖

Android MpAndroidchart使用流程和坑--餅狀圖

PieChart

借鑑部落格https://github.com/PhilJay/MPAndroidChart
http://www.jianshu.com/p/587946813a78

柱狀圖可以詳見:http://blog.csdn.net/androidwubo/article/details/72918612
組合圖可以詳見:http://blog.csdn.net/androidwubo/article/details/72922171
該專案的原始碼:https://github.com/Orion-wubo/orion

步驟:
1、引用(三種方式,不一一介紹了,看github)
2、根據需求選擇相應的表
折線圖 LineChart
條形圖 BarChart
條形折線圖 Combined-Chart
圓餅圖 PieChart
雷達圖 ScatterChart
K線圖 CandleStickChart
泡泡圖 BubbleChart
網狀圖 RadarChart
3、獲取相應控制元件
mPieChart = (PieChart) findViewById(R.id.chart1);
4、設定圖示
mPieChart.setUsePercentValues(true);//資料以百分比進行繪製
        mPieChart.getDescription().setEnabled(false);//是否顯示描述
        mPieChart.setExtraOffsets(5, 10, 5, 5);//設定距離左上右下的位置
        //設定中間檔案--就是空心裡面的文字
//mPieChart.setCenterText(generateCenterSpannableText());
        //設定是實心還是空心,實心false,空心true
        mPieChart.setDrawHoleEnabled(false);
        mPieChart.setDrawCenterText(true);//中間是否可以新增文字,當為空心
        mPieChart.setTransparentCircleColor(Color.WHITE);//透明圓的顏色
        mPieChart.setTransparentCircleAlpha(110);//設定透明度0-255,預設100
        mPieChart.setHoleRadius(58f);//半徑
        mPieChart.setTransparentCircleRadius(61f);//透明圓的半徑
        mPieChart.setRotationAngle(0);//設定初始的旋轉角度
        mPieChart.setRotationEnabled(true);// 觸控旋轉
        mPieChart.setHighlightPerTapEnabled(true);//true為點選高亮顯示

//設定圖示說明(這個通用)

//設定自定義mark(參考第二個部落格)(可選內容)

// 輸入標籤樣式(就是每一塊的介紹的文字)
        mPieChart.setEntryLabelColor(Color.WHITE);
        mPieChart.setEntryLabelTextSize(12f);

5、設定資料 (從字面意思就可以理解了)
PieDataSet dataSet = new PieDataSet(entries, "");
        dataSet.setColor(Color.BLACK);
        dataSet.setSliceSpace(3f);
        dataSet.setSelectionShift(5f);
        dataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);


        //資料和顏色
        ArrayList<Integer> colors = new ArrayList<Integer>();
        colors.add(rgb("#5e9de5"));
        colors.add(rgb("#72e65f"));
        colors.add(rgb("#f48741"));
        colors.add(rgb("#6267e1"));
        dataSet.setColors(colors);
        PieData data = new PieData(dataSet);
        data.setValueFormatter(new PercentFormatter());
        data.setValueTextSize(11f);
        data.setValueTextColor(Color.BLACK);
        mPieChart.setData(data);
        mPieChart.highlightValues(null);
        //重新整理
        mPieChart.invalidate();
6、設定文字(可選)
//設定中間文字
private SpannableString generateCenterSpannableText() {
//原文:MPAndroidChart\ndeveloped by Philipp Jahoda
SpannableString s = new SpannableString("劉某人程式設計師\n我彷彿聽到有人說我帥");
//s.setSpan(new RelativeSizeSpan(1.7f), 0, 14, 0);
//s.setSpan(new StyleSpan(Typeface.NORMAL), 14, s.length() - 15, 0);
// s.setSpan(new ForegroundColorSpan(Color.GRAY), 14, s.length() - 15, 0);
//s.setSpan(new RelativeSizeSpan(.8f), 14, s.length() - 15, 0);
// s.setSpan(new StyleSpan(Typeface.ITALIC), s.length() - 14, s.length(), 0);
// s.setSpan(new ForegroundColorSpan(ColorTemplate.getHoloBlue()), s.length() - 14, s.length(), 0);
return s;
}