以前项目中用到HellChart折线图,今天翻自己的笔记发现了关于这个库的一些基本使用的笔记。整理下,如要以后用到折线图可以拿来参考一下。
特点:
- 支持缩放、滑动以及平移。Zoom(pinch to zoom, double tap zoom), scroll and fling
- 支持自定义坐标轴(比如坐标轴位置:上下左右内部),
- 支持自动生成坐标轴。Custom and auto-generated axes(top, bottom, left, right, inside)
动画(Animations) - 支持预览,即在chart下面会有一个坐标密度更细的附属chart,当选中附属chart的某一区域,附属chart上面的chart会显示选中区域的更详细情况。
基本使用:
布局代码
<lecho.lib.hellocharts.view.PieChartView
android:id="@+id/pie_chart"
android:layout_width="180dp"
android:layout_height="180dp"
android:layout_marginTop="10dp" />
java代码
public class PerformanceRFFragment extends BaseFragment {
@Bind(R.id.pie_chart)
PieChartView mPieChart;
//数据
private PieChartData pieChardata;
List<SliceValue> values = new ArrayList<SliceValue>();
//定义数据,实际情况肯定不是这样写固定值的
private int[] data = {21, 20, 9, 2, 8};
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.performance_report_forms_fragment, null);
ButterKnife.bind(this, view);
initView();
return view;
}
protected void initView() {
setPieChartData();
initPieChart();
}
/**
* 初始化控件
*/
private void initPieChart() {
pieChardata = new PieChartData();
pieChardata.setHasLabels(true);//显示表情
pieChardata.setHasLabelsOnlyForSelected(false);//不用点击显示占的百分比
pieChardata.setHasLabelsOutside(false);//占的百分比是否显示在饼图外面
pieChardata.setHasCenterCircle(true);//是否是环形显示
pieChardata.setValues(values);//填充数据
pieChardata.setCenterCircleColor(Color.WHITE);//设置环形中间的颜色
pieChardata.setCenterCircleScale(0.5f);//设置环形的大小级别
mPieChart.setPieChartData(pieChardata);
mPieChart.setValueSelectionEnabled(true);//选择饼图某一块变大
mPieChart.setAlpha(0.9f);//设置透明度
mPieChart.setCircleFillRatio(1f);//设置饼图大小
}
/**
* 获取数据
*/
private void setPieChartData() {
for (int i = 0; i < data.length; ++i) {
SliceValue sliceValue = new SliceValue((float) data[i], Color.parseColor(getRandColorCode()));
values.add(sliceValue);
}
}
/**
* 获取十六进制的颜色代码.例如 "#6E36B4" , For HTML ,
*
* @return String
*/
public static String getRandColorCode() {
String r, g, b;
Random random = new Random();
r = Integer.toHexString(random.nextInt(256)).toUpperCase();
g = Integer.toHexString(random.nextInt(256)).toUpperCase();
b = Integer.toHexString(random.nextInt(256)).toUpperCase();
r = r.length() == 1 ? "0" + r : r;
g = g.length() == 1 ? "0" + g : g;
b = b.length() == 1 ? "0" + b : b;
return "#" + r + g + b;
}
@Override
public void onDestroyView() {
super.onDestroyView();
ButterKnife.unbind(this);
}
}
参考地址:
网友评论