国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Android自定義UI之粒子效果

瀏覽:69日期:2022-09-22 08:59:28

本文實(shí)例為大家分享了Android自定義UI之粒子效果的具體代碼,供大家參考,具體內(nèi)容如下

1.爆炸實(shí)體類(lèi)

public class Ball { public int color;//顏色 public float x;//圓心x坐標(biāo) public float y;//圓心y坐標(biāo) public float r;//粒子半徑 public float vX;//粒子水平方向速度 public float vY;//粒子y方向速度 public float aX;//粒子水平方向加速度 public float ay;//粒子y方向加速度}

2.自定義SplitView類(lèi)

import android.animation.ValueAnimator;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Paint;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;import android.view.animation.LinearInterpolator;import androidx.annotation.Nullable;import java.util.ArrayList;import java.util.List;public class SplitView extends View { private Paint mPaint; private Bitmap mBitmap; private float d=3;//粒子直徑 private ValueAnimator mAnimator; private List<Ball> mBalls=new ArrayList<>(); public SplitView(Context context) { super(context); } public SplitView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); } public SplitView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(); } private void init() { mPaint=new Paint(); mBitmap= BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher_background); for (int i=0;i<mBitmap.getWidth();i++){ for (int j =0;j<mBitmap.getHeight();j++){Ball ball=new Ball();ball.color=mBitmap.getPixel(i,j);ball.x=i*d+d/2;ball.y=j*d+d/2;ball.r=d/2;//速度(-20,20)ball.vX=(float)(Math.pow(-1,Math.ceil(Math.random()*1000))*20*Math.random());ball.vY=rangInt(-15,35);ball.aX=0;ball.ay=0.98f;mBalls.add(ball); } } mAnimator=ValueAnimator.ofFloat(0,1); mAnimator.setRepeatCount(-1);//重復(fù)次數(shù)無(wú)限 mAnimator.setDuration(2000);//重復(fù)時(shí)間 mAnimator.setInterpolator(new LinearInterpolator()); mAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) {upDateBall();invalidate();//重新調(diào)用onMeasure,ondraw方法。 } }); } private int rangInt(int x,int y){ int max=Math.max(x,y); int min=Math.min(x,y); return (int)(min+Math.ceil(Math.random()*(max-min))); } private void upDateBall() { for (Ball ball:mBalls){ ball.x=ball.x+ball.vX; ball.y=ball.y+ball.vY; ball.vX+=ball.aX; ball.vY+=ball.ay; } } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.translate(500,500); for (Ball ball:mBalls){ mPaint.setColor(ball.color); canvas.drawCircle(ball.x,ball.y,ball.r,mPaint); } } @Override public boolean onTouchEvent(MotionEvent event) { if (event.getAction()==MotionEvent.ACTION_DOWN) { //觸發(fā)動(dòng)畫(huà) mAnimator.start(); } return super.onTouchEvent(event); }}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Android
相關(guān)文章:
主站蜘蛛池模板: 久久精品国产大片免费观看 | 久久久久久国产精品免费 | 亚洲看片网 | 久草综合网| a级片在线免费播放 | 国产做a爰片久久毛片a | 碰碰碰精品视频在线观看 | 91精品久久久 | 国产精品久久久久无毒 | 国产精品99精品久久免费 | 国产黄色在线播放 | 成人夜色香网站在线观看 | 日本一级特黄特色大片免费视频 | 日本一级aaaa特黄毛片 | 日韩在线视频观看 | 在线视频自拍 | 欧美成人se01短视频在线看 | 国产日本亚洲欧美 | 一级毛片免费不卡夜夜欢 | 欧美一级鲁丝片 | 亚洲国产成人久久一区二区三区 | 国产一区二区三区日韩欧美 | 欧美成人aaaa免费高清 | 国产欧美日本在线 | 97在线观看成人免费视频 | 欧美性毛片大片 | 国产男女在线观看 | 亚洲欧洲国产成人精品 | 美女视频黄的免费视频网页 | 男性吸女下身的视频 | 日本一区二区三区高清在线观看 | 国产一区影视 | 不卡一区二区在线 | 久久久久88色偷偷免费 | 成年女人色毛片免费 | 色多多最新地址福利地址 | 日韩一级大片 | 国产丶欧美丶日韩丶不卡影视 | 97在线免费视频观看 | se就是色94欧美setu | 黄色aaaa|