最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
如何使用SurfaceView实现鱼儿游动动画
时间:2022-06-25 23:00:35 编辑:袖梨 来源:一聚教程网
本文实例为大家分享了使用SurfaceView实现动画的具体代码,供大家参考,具体内容如下
与自定义view绘图进行对比:
1.view绘图没有双缓冲机制,而surfaceview有
2.view绘图更新时,要全部更新整张图片,而surfaceview可以更新部分区域
3.新线程无法直接更新view绘图,需要handler配合。
鱼儿游动的动画:
java代码:
public class FishView extends SurfaceView implements SurfaceHolder.Callback{ 
 private SurfaceHolder holder; 
 private UpdateViewThread updatethread; 
 private boolean hasSurface; 
 private Bitmap back; 
 private Bitmap[] fishs; 
 private int fishIndex = 0;//绘制第几张鱼 
 //鱼的初始位置 
 private float fishx = 778; 
 private float fishy = 500; 
 private float fishSpeed = 6; //鱼的游动速度 
 //鱼的游动角度 
 private int fishAngle = new Random().nextInt(60); 
 Matrix matrix = new Matrix(); 
 
 public FishView(Context context) { 
  super(context); 
  Log.i("mydate" , "开始"); 
  //获取surfaceview的surfaceholder,并将该类的实例作为其callback 
  holder = getHolder(); 
  holder.addCallback(this);//以自身作为callback,回调方法 
  hasSurface = false; 
  back = BitmapFactory.decodeResource(context.getResources() , R.drawable.fishbg);//背景 
  int[] id = new int[]{R.drawable.fish0 , R.drawable.fish1 , R.drawable.fish2 ,R.drawable.fish3 ,R.drawable.fish4 ,R.drawable.fish5 ,R.drawable.fish6 ,R.drawable.fish7 ,R.drawable.fish8, R.drawable.fish9}; 
  fishs = new Bitmap[10]; 
  //初始化 鱼游动的10张图 
  for (int i = 0 ; i 
位置计算图片解释如下:
Math.toRadians(fishAngle)
先理解这句代码的意思:将0-360的角度制角度转化为pi弧度制角度
鱼儿不停的游动,坐标改变其实就是:
当前的x坐标 - 速度*cos角度 , 当前的y坐标 - 速度*sin角度
相关文章
- 暗喻幻想布丽吉塔设施完工时间说明 10-31
- 三国志8重制版居民情感作用介绍说明 10-31
- 三国志8重制版游戏灾害效果介绍说明 10-31
- 三国志8重制版武将不同状态区别说明 10-31
- 三国志8重制版武将阶级提升方法分享 10-31
- 三国志8重制版武将不同阶级作用说明 10-31
 
             
                                 
                                 
                                 
                                 
                                            
                                         
                                            
                                         
                                            
                                         
                                            
                                         
                                            
                                         
                                            
                                         
                                            
                                         
                                            
                                         
                                            
                                         
                                            
                                        