HelloCharts项目giuhub网址:https://github.com/lecho/hellocharts-android;
饼状图的使用
1,下载依赖包并添加到项目中
2,在布局文件中声明控件
<?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);//设置数值标签在被选中时出现