扣丁学堂Java开发实现帧动画的实例代码

  今天扣丁学堂给大家讲解一下关于Java开发实现帧动画的实例代码,有很多游戏网站或者视频网站会用到帧动画功能,视频网站中提供的在线视频播放功能,播放的都是FLV格式的文件,它是Flash动画文件,可通过Flash制作的播放器来播放该文件.项目中用制作的player.swf播放器,那么下面我们来看一下吧。

​  1、效果图

  2、帧动画的简要代码

  privateImageViewbgAnimView;

  privateAnimationDrawablemAnimationDrawable;

  //初始化

  mAnimationDrawable=newAnimationDrawable();

  bgAnimView=newImageView(mContext);

  bgAnimView.setBackgroundDrawable(getAnimationDrawable(mAnimationDrawable));

  params=newFrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);

  params.topMargin=Util.Div(176+58);

  params.gravity=Gravity.CENTER_HORIZONTAL;

  addView(bgAnimView,params);

  privateAnimationDrawablegetAnimationDrawable(AnimationDrawablemAnimationDrawable){

  intduration=50;

  mAnimationDrawable.addFrame(mContext.getResources().getDrawable(R.drawable.loading1),duration);

  mAnimationDrawable.addFrame(mContext.getResources().getDrawable(R.drawable.loading2),duration);

  mAnimationDrawable.addFrame(mContext.getResources().getDrawable(R.drawable.loading3),duration);

  mAnimationDrawable.setOneShot(false);

  returnmAnimationDrawable;

  }

  //动画开始

  publicvoidanimLoadingStart(){

  this.setVisibility(View.VISIBLE);

  if(mAnimationDrawable!=null){

  mAnimationDrawable.start();

  }

  }

  //动画结束

  publicvoidanimLoadingEnd(){

  if(mAnimationDrawable!=null){

  mAnimationDrawable.stop();

  }

  3、扩展:

  //X轴平移

  publicvoidanimY(inty,intnextY,intduration){

  LinearInterpolatorll=newLinearInterpolator();//匀速

  ObjectAnimatoranimator=ObjectAnimator.ofFloat(yourView,"translationY",0,300);//300若为负值,就是向上平移

  animator.setDuration(duration);

  animator.setInterpolator(ll);

  animator.start();

  }

  //Y轴平移

  publicvoidanimX(intx,intnextX,intduration){

  LinearInterpolatorll=newLinearInterpolator();

  ObjectAnimatoranimator=ObjectAnimator.ofFloat(yourView,"translationX",x,nextX);

  animator.setDuration(duration);

  animator.setInterpolator(ll);

  animator.start();

  }

  //纵向压缩0.5倍

  LinearInterpolatorll=newLinearInterpolator();//匀速

  ScaleAnimationscaleAnimation=newScaleAnimation(1,1,1,0.5f);//默认从(0,0)

  scaleAnimation.setDuration(500);

  scaleAnimation.setInterpolator(ll);

  scaleAnimation.setFillAfter(true);

  chartView.startAnimation(scaleAnimation);

  //横向压缩0.5倍

  LinearInterpolatorll=newLinearInterpolator();

  ScaleAnimationscaleAnimation=newScaleAnimation(1,0.5f,1,1);//默认从(0,0)

  scaleAnimation.setDuration(500);

  scaleAnimation.setInterpolator(ll);

  scaleAnimation.setFillAfter(true);

  chartView.startAnimation(scaleAnimation);

猜你喜欢

转载自blog.csdn.net/codingker/article/details/81097527
今日推荐