Android实现触摸跟随彗星拖尾效果

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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值