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

2018-07-18 14:25:08 501浏览

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



效果图

1、帧动画的简要代码
  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();
  }

2、扩展:

  //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);

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,扣丁学堂是专业的Java培训机构,不仅有专业的老师和与时俱进的课程体系,还有大量的Java视频教程供学员观看学习哦,心动的小伙伴快快行动吧。扣丁学堂Java技术交流群:670348138。


扣丁学堂微信公众号



【关注微信公众号获取更多学习资料】



查看更多关于“Java开发资讯的相关文章>>


标签: Java培训 Java开发程序员 Java视频教程

热门专区

暂无热门资讯

课程推荐

微信
微博
15311698296

全国免费咨询热线

邮箱:codingke@1000phone.com

官方群:148715490

北京千锋互联科技有限公司版权所有   北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
京ICP备12003911号-6   Copyright © 2013 - 2019

京公网安备 11010802030908号