因为项目需要,要做一个下载暂停开始的按钮,要求按钮上显示进度。网上找了找没有合适的,不太满意,于是自己动手写了一个。
效果如下:
主要步骤:
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();
/** 包围最外侧圆环的矩形 */