Android仿音乐播放器带进度的播放暂停按钮

这篇文章主要为大家详细介绍了Android仿音乐播放器带进度的播放暂停按钮,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

因为项目需要,要做一个下载暂停开始的按钮,要求按钮上显示进度。网上找了找没有合适的,不太满意,于是自己动手写了一个。

效果如下:

主要步骤:

1、最外侧的圆环。

2、圆环内侧代表进度的圆弧。

3、暂停时在中心部位画出三角形。

4、播放时在中心部位画出矩形。

5、重写onTouch方法,DOWN事件时设置播放或者暂停的状态。

6、添加一个状态监听器,在调用者中监听状态。

7、设置进度,重绘。

代码比较简单,所以贴出来View的代码,Activity和布局文件就不写了:

 /** Created by xuzhilei on 2016/8/16. 模仿音乐暂停开始按钮的View */ public class PlayButtonView extends View { /** 中心点X轴坐标 */ private int viewCenterX; /** 中心点Y轴坐标 */ private int viewCenterY; /** 有效长度的一般(View长宽较小者的一半) */ private int viewHalfLength; /** 三角形右侧顶点 */ private Point pointA = new Point(); /** 三角形左上顶点 */ private Point pointB = new Point(); /** 三角形左下顶点 */ private Point pointC = new Point(); /** 矩形左边界 */ private int RectLeft; /** 矩形上边界 */ private int RectTOP; /** 矩形右边界 */ private int RectRight; /** 矩形下边界 */ private int RectBottom; /** 三角形的三条边路径 */ private Path path = new Path(); /** 包围最外侧圆环的矩形 */ private RectF rectF = new RectF(); /** 包围进度圆弧的矩形 */ private RectF rectF2 = new RectF(); /** 进度 */ private int progress; /** 暂停中还是播放中 */ private boolean isPlaying = false; /** 是否进行过了测量 */ private boolean isMeasured = false; /** 画笔颜色 */ private int color = 0xffff0099; /** 最外侧圆环画笔 */ private Paint paintA = new Paint(); /** 进度圆弧画笔 */ private Paint paintB = new Paint(); /** 暂停开始画笔 */ private Paint paintC = new Paint(); /** 状态监听器 */ private OnStatusChangeListener onStatusChangeListener; /** 构造器 */ public PlayButtonView(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); if (!isMeasured) { getWidthAndHeight(); isMeasured = true; } } /** 得到视图等的高度宽度尺寸数据 */ private void getWidthAndHeight() { int viewHeight = getMeasuredHeight(); int viewWidth = getMeasuredWidth(); viewCenterX = viewWidth / 2; viewCenterY = viewHeight / 2; viewHalfLength = viewHeight  100) { progress = 100; } this.progress = progress; invalidate(); } /** 外界设置播放状态 */ public void setPlaying(boolean isPlaying) { this.isPlaying = isPlaying; invalidate(); } /** 播放暂停状态监听的接口 */ public interface OnStatusChangeListener { void play(); void pause(); } /** 设置监听接口 */ public void setOnStatusChangeListener(OnStatusChangeListener onStatusChangeListener) { this.onStatusChangeListener = onStatusChangeListener; } /** 位置信息 */ private class Point { float x; float y; }

在调用者中设置OnStatusChangeListener 的监听器即可监听播放状态,通过setProgress方法就可以设置进度。

以上就是Android仿音乐播放器带进度的播放暂停按钮的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » 移动