SVID_20241010_155047_1
效果图
实现思路,在触摸事件中设置定时存储坐标点,通过坐标点的集合生成贝塞尔曲线显示在自定义View中
package com.plattysoft.leonids.bezierdemo;
import static java.lang.Double.NaN;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.graphics.BlurMaskFilter;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.RectF;
import android.graphics.Shader;
import android.os.Handler;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.animation.AccelerateInterpolator;
import com.plattysoft.leonids.bezierdemo.leonids.ParticleSystem;
import java.util.LinkedList;
import java.util.Queue;
//尾迹
public class MainCanvas2 extends View {
private ParticleSystem ps;
private Context mContext;
private Activity activity;
private Paint mPaintMouse;
private Paint mPaintTails;//鼠标拖尾画笔
private final int strokeWidth = 280;
boolean mouse_begin = false;//鼠标是否按下
private Path pathBackground = new Path();
private float mouseCurrentX = 0;//当前鼠标位置X
private float mouseCurrentY = 0;//当前鼠标位置Y
private float mouseLastX = 0;//
private float mouseLastY = 0;//
Queue<Float> mouseX = new LinkedList<Float>();//保存鼠标轨迹X
Queue<Float>