/**
* 设置画笔
*/
private void initPaint() {
mPaint=new Paint();
mPaint.setColor(Color.RED);
mPaint.setAntiAlias(true);
mPaint.setStyle(Style.FILL);
}
上涨代码
int MAX_VOLUME=100;
int mProgress=50;
float volume_sum_degree=-180;
float volume_down_degree=90;
@Override
protected void onDraw(Canvas canvas) {
super .onDraw(canvas);
if ( mProgress > MAX_VOLUME) {
mProgress = MAX_VOLUME;
}
// 得到当前音量占最大音量的百分比
double percent = ((double) mProgress) / MAX_VOLUME;
// 得到当前音量画扇形时从起始角度应该转过的角度
double degree = volume_sum_degree * percent ;
// 画扇形时的起始角度
double drawStartDegree = volume_down_degree - degree ;
RectF rect = new RectF(0 , 0, 200, 200) ;
canvas.drawArc(rect , //弧线所使用的矩形区域大小
( float) drawStartDegree, //开始角度
( float) ((90 - drawStartDegree) * 2) , //扫过的角度
false, //是否使用中心
mPaint );
}