主要步骤
1.绘制20个方形组合的进度条
2.监听坐标转化为进度条的条目数
3.将条目数监听回调给客户端
4. 根据进度条条目数设置声音大小
1.绘制20个方形组合的进度条
根据定点坐标和画笔属性绘制
根据进度大小来区别画笔颜色,用于显示当前声音进度
当前的进度数= 当前音量的2的倍数+当前音量的2的余数
1.1 . 每个条目的左上的X坐标 = (当前条目数-1 )*(长方形的宽度+进度条的间隔)+进度条的左边距
1.2. 每个条目的左上的Y坐标 = 进度条的上边距
1.3. 每个条目的右上的X坐标 = 每个条目的左上的X坐标 + 长方形的宽度
1.4. 每个条目的右上的Y坐标 = 进度条的上边距 + 长方形的高度
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
for(int i =1; i <= mTotal; i++) {
drawRect(i, canvas);
}
}
private void drawRect(int i, Canvas canvas) {
int color = i <= mPrecess ? mSelectColor : mBgColor;
mPaint.setColor(color);
int startX = getLeft(i);
canvas.drawRect(getLeft(i), mTop, startX + mRectWidth, mBottom, mPaint);
}
private int getLeft(int i) {
return (i - 1) * (mRectWidth + space) + mPaddingX;
}
2.监听坐标转化为进度条的条目数
监听坐标转化为进度条的条目数 = onTouchEvent监听获取的X坐标 / (长方形的宽度+进度条的间距)+1
private int getIndexByX(float x) {
int index = (int) (x - mPaddingX);
if(index <= 0) {
return 0;
}
index