本文讲述了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动画帧储存路径_Java实现帧动画的实例代码相关推荐

  1. java怎么获取传入路径_java如何获取jsp页面上传的文件路径

    java文件中获得路径 Thread.currentThread().getContextClassLoader().getResource("") //获得资源文件(.class ...

  2. java当中如何修改路径_Java 中 更改文件路径

    java 中更改文件路径可以用file.renameTo 方法 public static void moveDataFile2Reject() throws Exception { try { // ...

  3. java ftp服务器_Java实现FTP服务器功能实例代码

    FTP(File Transfer Protocol 文件传输协议)是Internet 上用来传送文件的协议.在Internet上通过FTP 服务器可以进行文件的上传(Upload)或下载(Downl ...

  4. java 生成token代码_java token生成和校验的实例代码

    现在越来越多的登录方式都用到了token作为用户登录令牌,所以实现了一个token生成和校验案例. 缺点:该实现方式token是存储在内存中,不适合分布式项目,如需改为分布式项目部署,可把token存 ...

  5. java一维打地鼠_Java编程实现打地鼠文字游戏实例代码

    控制台输入数字,与随机数匹配,匹配正确则返回"打中了!" 匹配错误则返回"太遗憾!没打中!" package hitmouse; import java.uti ...

  6. java 判断图片格式_Java判断上传图片格式的实例代码

    先给大家介绍下java判断上传图片格式. 由于客户上传图片将png的图片的后缀名改为jpg,所以通过后缀名判断不行,用下面这个方法可以 //判断是否是JPG格式 log.info("-1-- ...

  7. java打地鼠文本代码_Java编程实现打地鼠文字游戏实例代码

    Java编程实现打地鼠文字游戏实例代码 发布时间:2020-10-05 07:00:48 来源:脚本之家 阅读:91 作者:lao_huang123 控制台输入数字,与随机数匹配,匹配正确则返回&qu ...

  8. java get null_java 获取对象中为null的字段实例代码

    下面一段简单的代码给大家分享java 获取对象中为null的字段,具体代码如下所述: private static String[] getNullPropertyNames(Object sourc ...

  9. android右滑返回动画,Android仿微信右滑返回功能的实例代码

    先上效果图,如下: 先分析一下功能的主要技术点,右滑即手势判断,当滑到一直距离时才执行返回,并且手指按下的位置是在屏幕的最左边(这个也是有一定范围的),  这些可以实现onTouchEvent来实现. ...

  10. android 今日头条加载动画,Android 仿今日头条简单的刷新效果实例代码

    点击按钮,先自动进行下拉刷新,也可以手动刷新,刷新完后,最后就多一行数据.有四个选项卡. 前两天导师要求做一个给本科学生预定机房座位的app,出发点来自这里.做着做着遇到很多问题,都解决了.这个效果感 ...

最新文章

  1. 现代内存编号解读(转)
  2. 使用Chrome扩展金山词霸取词划意
  3. AAAI 2021线下论文预讲会讲者征集
  4. C读取配置文件,然后写入结构体的方法
  5. P2056 [ZJOI2007]捉迷藏
  6. MySQL 索引的问题
  7. 1.5.2 在IIS上配置ASP.NET(转)
  8. RecycleView添加HeaderView和FooterView
  9. 会议家用多面手!智能微型投影设备导购
  10. Python流程控制的 for、 while、循环和嵌套词汇continue、break、range
  11. TP5.1中的验证类 validate用法
  12. BP神经网络综合评价法
  13. qpython3下载不了_qpython3手机版
  14. linux下删原来的盘符命令,linux中创建磁盘分区 删除分区
  15. 如何判断某个类是否有某个注解?
  16. 思科、华为、H3C交换机命名规则全收录
  17. CF1090H Linearization
  18. RabitMQ系列之 Spring RabbitMQ流量削锋实现案例之抢红包
  19. 浅谈汽车软件Boot的五种自刷新方式
  20. 媒体文件查看/上传至WP媒体库

热门文章

  1. 算法笔记_面试题_8.零钱兑换
  2. 各种常用STL容器选择 需求分析笔记
  3. node.js(五)项目创建管理
  4. “文艺复兴” ConvNet卷土重来,压过Transformer!FAIR重新设计纯卷积新架构
  5. 无监督/自监督/半监督的景物分割方法
  6. Kaggle实战之食尸鬼、地精、鬼魂分类
  7. 20165208 2017-2018-2 《Java程序设计》第九周学习总结
  8. 如何查询Oracle性能监控
  9. 某些函数原型及其用法
  10. K-th largest element in an array