怎么在Android中实现一个花瓣飘落效果

  介绍

这篇文章给大家介绍怎么在Android中实现一个花瓣飘落效果,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

Android是什么

Android是一种基于Linux内核的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由美国谷歌公司和开放手机联盟领导及开发。


<李>

首先需要生成绘制小花的坐标点,坐标点的横坐标是根据控件的宽度随机生成的,而纵坐标则设置为小花图片高度的负值(这样可以实现小花从屏幕外进入)。

<李>

将这些点存储到集合当中。

<李>

遍历集合根据点的位置绘制小花

<李>

绘制完后不断增加各个点的纵坐标

实现步骤

1。定义变量将变量初始化

private  SurfaceHolder  mHolder;   ,,,private  boolean  mFlag =,真的,//绘制小花线程的开关标志   ,,,private  ArrayList, mFlowers;//小花点的坐标集合   ,,,private  Random  mRandom;//负责随机数生成   ,,,private  Bitmap  mBitmap;//小花的图案      ,,,public  FlowerView (Context 上下文),{   ,,,,,,,超级(上下文);   ,,,,,,,init ();   ,,,}      ,,,public  FlowerView (Context 上下文,AttributeSet  attrs), {   ,,,,,,,超级(上下文,attrs);   ,,,,,,,init ();   ,,,}      ,,,public  FlowerView (Context 上下文,AttributeSet  attrs,, int  defStyleAttr), {   ,,,,,,,超级(上下文,attrs, defStyleAttr);   ,,,,,,,init ();   ,,,}   ,,,private  void  init () {   ,,,,,,,mHolder =, getHolder ();   ,,,,,,,mHolder.addCallback(这个);   ,,,,,,,//设置背景透明   ,,,,,,,this.setZOrderOnTop(真正的);   ,,,,,,,mHolder.setFormat (PixelFormat.TRANSLUCENT);      ,,,,,,,mFlowers =, new  ArrayList<在();   ,,,,,,,mRandom =, new 随机();      ,,,,,,,mBitmap =, BitmapFactory.decodeResource (getresource (),, R.drawable.ic_hua);      ,,,}

2。实现添加花朵坐标点的方法

/* *   ,,,,*,添加花朵   ,,,*/,,,private  void  addFlower () {   ,,,,,,,PointF  point =, new  PointF ();   ,,,,,,,point.x=mRandom.nextInt (getWidth());//根据控件宽度随机生成X轴坐标   ,,,,,,,point.y=-mBitmap.getHeight();//纵坐标设置为小花图像的负值(产生从屏幕外进入的效果)   ,,,,,,,mFlowers.add(点);//将坐标点添加进集合   ,,,}

3。实现SurfaceHolder。回调及运行的接口

public  class  FlowerView  extends  SurfaceView  implements  SurfaceHolder.Callback, Runnable

4。在运行方法中实现绘制逻辑

, @Override   ,,,public  void 运行(),{   ,,,,,,,while  (mFlag) {   ,,,,,,,,,,,try  {   ,,,,,,,,,,,,,,,thread . sleep(80);//控制小花的下落速度   ,,,,,,,,,,,,,,,Canvas  Canvas =, mHolder.lockCanvas ();   ,,,,,,,,,,,,,,,PointF  PointF =,空;   ,,,,,,,,,,,,,,,//清屏操作(否则会残留一些无用图像)   ,,,,,,,,,,,,,,,如果(帆布!=null) {   ,,,,,,,,,,,,,,,,,,,canvas.drawColor (PorterDuff.Mode.CLEAR Color.TRANSPARENT也);   ,,,,,,,,,,,,,,,}else  {   ,,,,,,,,,,,,,,,,,,,继续;   ,,,,,,,,,,,,,,,}   ,,,,,,,,,,,,,,,,(时间点:PointF  mFlowers) {   ,,,,,,,,,,,,,,,,,,,pointF =,点;   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么在Android中实现一个花瓣飘落效果