仿消灭星星烟花爆炸效果

本文介绍了如何在Android应用中实现烟花爆炸效果,包括大烟花和小烟花的爆炸动画,并提供了详细的代码实现。代码涉及烟花粒子元素、粒子控制类以及自定义粒子控件的详细设计,可以通过调整参数和图片来改变烟花效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

烟花效果,可以改变参数和图片改变烟花效果。


1.大烟花爆炸效果如下



2.小烟花爆炸效果如下



3.代码如下

3.1烟花粒子元素

import android.graphics.Bitmap;
public class Element {
    public int color;
    public Double direction;
    public float speed;
    public float x = 0;
    public float y = 0;
    public Bitmap bitmap;

    public Element(int color, Double direction, float speed,Bitmap bitmap){
        this.color = color;
        this.direction = direction;
        this.speed = speed;
        this.bitmap = bitmap;
    }
}


3.2烟花粒子控制类

import android.R.integer;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ValueAnimator;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BlurMaskFilter;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.AvoidXfermode.Mode;
import android.os.Handler;
import android.provider.MediaStore.Video;
import android.util.Log;
import android.view.animation.AccelerateInterpolator;
import android.widget.Toast;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
import com.develop.GameSoundPool.GameSoundPool;
import com.develop.PopStars.R;
import com.develop.PopStars.Util.Utils;

public class Firework {

private final String TAG = this.getClass().getSimpleName();
final float screenWidthMeasure = 720;
private final static int BIG_DEFAULT_ELEMENT_COUNT = 200;//大烟花爆炸数量
private final static int MIDDLE_DEFAULT_ELEMENT_COUNT = 200;
private int BIG_DEFAULT_DURATION = 3000;
private final static float BIG_DEFAULT_LAUNCH_SPEED = 3;
private final static float BIG_DEFAULT_ELEMENT_SIZE = 8;

private final static int SMALL_DEFAULT_ELEMENT_COUNT = 8;//小星星爆炸数量
private int SMALL_DEFAULT_DURATION = 1300;//烟花持续时间
private final static float SMALL_DEFAULT_LAUNCH_SPEED = 18;//烟花分散速度
private final static float SMALL_DEFAULT_ELEMENT_SIZE = 8;//烟花颗粒大小

private final static float DEFAULT_WIND_SPEED = 6;
private final static float DEFAULT_GRAVITY = 6;

private Paint mPaint;
private int count; // count of element
private int duration;
private int[] colors;
private int color;
private float launchSpeed;
private float windSpeed;
private float gravity;
private int windDirection; // 1 or -1
private Location location;
private float elementSize;
GameSoundPool sounds;//烟花爆炸声音控制
private ValueAnimator animator;
private float animatorValue;

private ArrayList<Element> elements = new ArrayList<Element>();
private AnimationEndListener listener;
Context context;
private int mode = 0;
private float

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值