今天扣丁学堂给大家讲解一下关于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);
网友评论