public CircleChart02View(Context context) {
super(context);
// _TODO Auto-generated constructor stub_
setPercentage(0);
chartRender();
}
public CircleChart02View(Context context, AttributeSet attrs) {
super(context, attrs);
setPercentage(0);
chartRender();
}
public CircleChart02View(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
setPercentage(0);
chartRender();
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
//图所占范围大小
chart.setChartRange(w, h);
}
public void chartRender() {
try {
//设置信息
chart.setAttributeInfo(mDataInfo);
chart.getDataInfoPaint().setTextSize(30f);
//数据源
chart.setDataSource(mlPieData);
chart.getLabelPaint().setColor(Color._rgb_(72, 201, 176));//百分比颜色
chart.setIRadius(0.8f);//轨迹内圆半径
// chart.hideInnerFill();//是否满圆
//半圆方式显示,不用则是圆方式显示 chart.setCircleType(XEnum.CircleType._HALF_);
chart.getFillCirclePaint().setColor(Color._BLUE_);//内圆色
//背景色 chart.getBgCirclePaint().setColor(Color._YELLOW_);
//深色
// chart.getFillCirclePaint().setColor(Color.YELLOW);
chart.setInitialAngle(90);
//信息颜色
chart.getDataInfoPaint().setColor(Color._RED_);
//显示边框
chart.showRoundBorder();
} catch (Exception e) {
// _TODO Auto-generated catch block_
Log._e_(TAG, e.toString());
}
}
//百分比
public void setPercentage(int per) {
//PieData(标签,百分比,在饼图中对应的颜色)
mlPieData.clear();
int color = Color._rgb_(72, 201, 176);
if (per < 40) {
mDataInfo \= "容易容易";
} else if (per < 60) {
mDataInfo \= "严肃认真";
color = Color._rgb_(246, 202, 13);
} else {
mDataInfo \= "压力山大";
color = Color._rgb_(243, 75, 125);
}
mlPieData.add(new PieData(Integer._toString_(per) + "%", per, color));
}
@Override
public void render(Canvas canvas) {
try {
chart.render(canvas);
} catch (Exception e) {
Log._e_(TAG, e.toString());
}
}
}
<clan.yuanxin.com.mydaifa.pictures.CircleChart02View
android:id="@+id/circle\_view"
android:layout\_width="200dip"
android:layout\_height="200dip"
android:layout\_gravity="center\_vertical|left"
/>
java代码
//圆
CircleChart02View chart = null;
chart = (CircleChart02View)findViewById(R.id.circle_view);
显示数据
chart.setPercentage(progress);//20
chart.chartRender();
chart.invalidate();