怎么在Android中使用SurfaceView实现一个点赞动画

  介绍

这期内容当中小编将会给大家带来有关怎么在Android中使用SurfaceView实现一个点赞动画,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

ZanBean类,每个ZanBean都要负责实时更新自己的位置,透明度等数据

import  android.animation.TypeEvaluator;,   import  android.animation.ValueAnimator,   import  android.annotation.TargetApi,   import  android.content.Context,   import  android.graphics.Bitmap,   import  android.graphics.BitmapFactory,   import  android.graphics.Canvas,   import  android.graphics.Matrix,   import  android.graphics.Paint,   import  android.graphics.Point,   import  android.os.Build,   ,   import  java.util.Random,   ,   {public  class  ZanBean    ,/* *大敌;   *,才能心的当前坐标,   */才能,   ,public  Point ;/* *大敌;   *,才能移动动画,   */才能,   ,private  ValueAnimator  moveAnim;/* *大敌;   *,才能放大动画,   */才能,   ,private  ValueAnimator  zoomAnim;/* *大敌;   *,才能透明度,   */才能,   ,public  int  alpha =, 255;//,/* *大敌;   *,才能心图,   */才能,   ,private  Bitmap 点阵;/* *大敌;   *,才能绘制位图的矩阵,用来做缩放和移动的,   */才能,   ,private  Matrix  Matrix =, new 矩阵(),,/* *大敌;   *,才能缩放系数,   */才能,   ,private  float  sf =, 0;,/* *大敌;   *,才能产生随机数,   */才能,   ,private  Random 随机;   ,public  boolean  isEnd =,假;//是否结束,   ,   ,public  ZanBean (Context 上下文,int 渣油,,ZanView  zanView), {,   时间=random 才能;new 随机();,   时间=bitmap 才能;BitmapFactory.decodeResource (context.getResources(),,渣油),,   初始化才能(new 点(zanView.getWidth (),/, 2, zanView.getHeight()之处;bitmap.getHeight (),/, 2),, new 点((random.nextInt (zanView.getWidth ())),, 0)),,   }大敌;   ,   ,   ,public  ZanBean (Bitmap ,位图,ZanView  zanView), {,   时间=random 才能;new 随机();,   this.bitmap 才能=,位图,,//为才能了让在起始坐标点时显示完整,需要减去bitmap.getHeight ()/2,   init才能(new 点(zanView.getWidth (),/, 2, zanView.getHeight(),安康;bitmap.getHeight (),/, 2),, new 点((random.nextInt (zanView.getWidth ())),, 0)),,   }大敌;   ,   ,@TargetApi (Build.VERSION_CODES.HONEYCOMB),   ,private  void  init (final  Point 曾经繁荣,Point 端点),{,   moveAnim 才能=,ValueAnimator.ofObject (new  BezierEvaluator (new 点(random.nextInt (* startPoint.x  2),, Math.abs (endPoint.y 作用;startPoint.y),/, 2)),,曾经繁荣,,端点),,   moveAnim.setDuration才能(1500),,   moveAnim.addUpdateListener才能(new  ValueAnimator.AnimatorUpdateListener (), {,   ,,@Override    ,,public  void  onAnimationUpdate (ValueAnimator 动画),{,   ,,,point =,(点),animation.getAnimatedValue (),,   ,,,alpha =, (int),((浮动),point.y /,(浮动),startPoint.y  *, 255),,   ,,},   ,,});   moveAnim.start才能(),,   zoomAnim 才能=,ValueAnimator.ofFloat f (0, 1) .setDuration (700),,   zoomAnim.addUpdateListener才能(new  ValueAnimator.AnimatorUpdateListener (), {,   ,,@Override    ,,public  void  onAnimationUpdate (ValueAnimator 动画),{,   ,,,Float  f =,(浮动),animation.getAnimatedValue (),,   ,,,sf =, f.floatValue (),,   ,,},   ,,});   zoomAnim.start才能(),,   }大敌;   ,//,public  void 暂停(){,//,,如果(moveAnim  !=null&,, moveAnim.isRunning ()) {,//,,,moveAnim.pause (),,//,,},//,,如果(zoomAnim  !=null&,, zoomAnim.isRunning ()) {,//,,,zoomAnim.pause (),,//,,},//,},//,//,public  void 简历(){,//,,如果(moveAnim  !=null&,, moveAnim.isPaused ()) {,//,,,moveAnim.resume (),,//,,},//,,如果(zoomAnim  !=null&,, zoomAnim.isPaused ()) {,   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   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中使用SurfaceView实现一个点赞动画