日结| Day26
时光就像是魔法,抖落那些旧时光,吹散那些沉闷的年华。相信一切都已经过去。迎接我们的是爱和茂盛的阳光
早起
6点50准时起床,阅读《偷影子的人》
运动
俯卧撑:3组20个,哑铃:3组10个,深蹲:3组10个
打拳
阅读
读完《偷影子的人》
学习
《自定义控件》第七章 贝济埃曲线
示例图
具体代码如下:
public class NormalGestureTrackView extends View {
private Paint paint;
Path path = new Path();
// 起点位置
private float preX, preY;
// 终点位置
private float endX, endY;
public NormalGestureTrackView(Context context) {
super(context);
}
public NormalGestureTrackView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setColor(Color.BLACK);
paint.setStrokeWidth(5);
paint.setStyle(Paint.Style.STROKE);
}
public NormalGestureTrackView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
// 返回 true 表示当前控件消费了下按动作,之后的其他动作也会继续传递到当前控件中
path.moveTo(event.getX(), event.getY());
preX = event.getX();
preY = event.getY();
return true;
case MotionEvent.ACTION_MOVE:
endX = (preX + event.getX()) / 2;
endY = (preY + event.getY()) / 2;
path.quadTo(preX, preY, endX, endY);
preX = event.getX();
preY = event.getY();
invalidate();
break;
default:
break;
}
return super.onTouchEvent(event);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawColor(Color.WHITE);
canvas.drawPath(path, paint);
}
}
网友评论