HelloCharts圖表庫之餅狀圖
阿新 • • 發佈:2019-01-05
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<lecho.lib.hellocharts.view.PieChartView
android:id ="@+id/pcv"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
3,在Activity中的處理
public class MyPieChartActivity extends Activity {
private PieChartView chart;
@Override
protected void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout.activity_mypiechart);
chart = (PieChartView) findViewById(R.id.pcv);
chart.setCircleFillRatio(0.8f);//設定餅狀圖佔整個view的比例
chart.setChartRotationEnabled(true);//設定餅狀圖可以旋轉
chart.setOnValueTouchListener(new PieChartOnValueSelectListener() {
@Override
public void onValueSelected(int i, SliceValue sliceValue) {
}
@Override
public void onValueDeselected() {
}
});
generateData();
}
private void generateData() {
int sliceNum = 7;
List<SliceValue> sliceValues = new ArrayList<>();
for (int i = 0; i < sliceNum; i++) {
sliceValues.add(new SliceValue((float) (Math.random() * 20 + 10), ChartUtils.pickColor()));
}
PieChartData data = new PieChartData(sliceValues);
data.setHasLabels(false);
data.setHasLabelsOnlyForSelected(true);
data.setHasLabelsOutside(true);
data.setHasCenterCircle(true);
data.setCenterCircleColor(Color.BLUE);//設定空心的顏色
data.setCenterCircleScale(0.5f);//設定空心所佔的比例,預設0.6f
data.setCenterText1("hello");
data.setSlicesSpacing(12);
//只有設定中間空心才能有效設定文字
Typeface tf = Typeface.createFromAsset(getAssets(), "Roboto-Italic.ttf");
data.setCenterText1Typeface(tf);
// Get font size from dimens.xml and convert it to sp(library uses sp values).
data.setCenterText1FontSize(ChartUtils.px2sp(getResources().getDisplayMetrics().scaledDensity,
(int) getResources().getDimension(R.dimen.pie_chart_text1_size)));
chart.setPieChartData(data);
}
}
餅狀圖中幾個重要的方法:
PieChartView:
1,setCircleFillRatio(0.8f);//設定餅狀圖佔整個view的比例
2,chart.setChartRotationEnabled(true);//設定餅狀圖可以旋轉
PieChartData:
1,setSlicesSpacing(int i);//設定每一塊之間的間隙
2,setHasLabels(boolean b);//是否顯示數值標籤
3,setHasLabelsOnlyForSelected(booelan b);//是否僅在被選中的時候顯示數值標籤
4,setHasLabelsOutside(boolean b);//數值標籤在餅內還是餅外
5,setHasCenterCircle(boolean b);//餅狀圖是否空心、
6,setCenterText1(String text);//設定空心處的文字
7,setCenterText2(String text);//設定空心出的文字
8,setCenterText1Typeface( Typeface tf);//設定文字的樣式
9,setCenterText1FontSize();//設定文字的大小
10,setCenterText1Color();//設定文子的顏色
11,setValueSelectionEnabled(boolean b);//設定數值標籤在被選中時出現