2018-07-18 14:25:08 519浏览
今天扣丁学堂给大家讲解一下关于Java培训之实现帧动画的实例代码,有很多游戏网站或者视频网站会用到帧动画功能,视频网站中提供的在线视频播放功能,播放的都是FLV格式的文件,它是Flash动画文件,可通过Flash制作的播放器来播放该文件.项目中用制作的player.swf播放器,那么下面我们来看一下吧。
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();
}
//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。
【关注微信公众号获取更多学习资料】