首页 > 开发 > Java > 正文

Java实现帧动画的实例代码

2024-07-14 08:40:50
字体:
来源:转载
供稿:网友

本文讲述了Java实现帧动画的实例代码。分享给大家供大家参考,具体如下:

1、效果图

java,帧动画,代码,java帧动画代码

2、帧动画的简要代码

private ImageView bgAnimView;  private AnimationDrawable mAnimationDrawable; //初始化  mAnimationDrawable = new AnimationDrawable();  bgAnimView = new ImageView(mContext);  bgAnimView.setBackgroundDrawable(getAnimationDrawable(mAnimationDrawable));  params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);  params.topMargin = Util.Div(176 + 58);  params.gravity = Gravity.CENTER_HORIZONTAL;  addView(bgAnimView, params); private AnimationDrawable getAnimationDrawable(AnimationDrawable mAnimationDrawable) {  int duration = 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);  return mAnimationDrawable;  }  //动画开始  public void animLoadingStart() {  this.setVisibility(View.VISIBLE);  if (mAnimationDrawable != null) {  mAnimationDrawable.start();  }  }  //动画结束  public void animLoadingEnd() {  if (mAnimationDrawable != null) {  mAnimationDrawable.stop();  } 

3、扩展:

//X轴平移  public void animY(int y, int nextY, int duration) {  LinearInterpolator ll = new LinearInterpolator(); //匀速  ObjectAnimator animator = ObjectAnimator.ofFloat(yourView, "translationY", 0, 300);//300若为负值,就是向上平移  animator.setDuration(duration);  animator.setInterpolator(ll);  animator.start();  } //Y轴平移  public void animX(int x, int nextX, int duration) {  LinearInterpolator ll = new LinearInterpolator();  ObjectAnimator animator = ObjectAnimator.ofFloat(yourView, "translationX", x, nextX);  animator.setDuration(duration);  animator.setInterpolator(ll);  animator.start();  } //纵向压缩0.5倍  LinearInterpolator ll = new LinearInterpolator();//匀速  ScaleAnimation scaleAnimation = new ScaleAnimation(1, 1, 1, 0.5f);//默认从(0,0)  scaleAnimation.setDuration(500);  scaleAnimation.setInterpolator(ll);  scaleAnimation.setFillAfter(true);  chartView.startAnimation(scaleAnimation); //横向压缩0.5倍  LinearInterpolator ll = new LinearInterpolator();  ScaleAnimation scaleAnimation = new ScaleAnimation(1, 0.5f, 1, 1);//默认从(0,0)  scaleAnimation.setDuration(500);  scaleAnimation.setInterpolator(ll);  scaleAnimation.setFillAfter(true);  chartView.startAnimation(scaleAnimation); 

点击打开素材下载地址

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对VeVb武林网的支持。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表