欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > java >内容正文

java

java图片16帧动画_Java实现帧动画的实例代码

发布时间:2025/3/19 java 31 豆豆
生活随笔 收集整理的这篇文章主要介绍了 java图片16帧动画_Java实现帧动画的实例代码 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

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

1、效果图

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

总结

以上是生活随笔为你收集整理的java图片16帧动画_Java实现帧动画的实例代码的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。