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

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

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

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

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

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

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

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

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

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

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

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

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

  7. java 图片合成 红色失真_Java - 处理某些图片泛红

    参考博文: http://blog.csdn.net/kobejayandy/article/details/44346809 http://blog.csdn.net/shixing_11/arti ...

  8. java 图片合成 工具类_Java实现的图片上传工具类完整实例

    本文实例讲述了Java实现的图片上传工具类.分享给大家供大家参考,具体如下: package com.gcloud.common; import javax.imageio.ImageIO; impo ...

  9. java图片转成字符串_JAVA将图片(本地或者网络资源)转为Base64字符串,将base64字符串存储为本地图片...

    网络资源代码 import java.io.ByteArrayOutputStream; import java.io.FileOutputStream; import java.io.IOExcep ...

最新文章

  1. centos 7 局域网丢包排查_ethtool原理介绍和解决网卡丢包排查思路
  2. MySQL事务隔离级别的实现原理
  3. ssm框架下文件上传
  4. 教你 Shiro + SpringBoot 整合 JWT
  5. wordpress 如何移除管理后台仪表盘小工具
  6. 关于字符编码的一点学习。
  7. bzoj4423[AMPPZ2013]Bytehattan
  8. 浏览器 pad android,360安全浏览器平板电脑Pad专用版-360安全浏览器HD 安卓版v1.1.0-PC6安卓网...
  9. SPSS基础教程:认识SPSS的主要窗口
  10. uniapp开发微信公众号(支付宝支付)
  11. FFmpeg基础:视频流转图片
  12. CTS2019朝圣 x 打铁记
  13. 新买的华为Matebook,Office没激活,激活方法在这里!!!
  14. win32_mfc 理论资料 供自己查阅
  15. 安卓recovery系统详解
  16. 电脑录屏是哪个快捷键?3个录屏快捷键,教你快速录屏
  17. 视频教程-《信息学竞赛-C语言》 DAY30-清华尹成老师-C/C++
  18. Kubernetes学习笔记——k8s基本概念初探
  19. 硬件电路(3)设计篇----为什么栅极型推挽电路不用上P下N?
  20. 计算机英语 单词101-200

热门文章

  1. fullbnt matlab,FullBNT学习笔记之一(matlab)
  2. Python中列表和字符串的反转
  3. Python logging模块日志存储位置踩坑
  4. Python atexit模块
  5. js中text方法是啥意识_一盏茶的时间,快速捕获JS中常用的方法(细心整理,持续更新ing)...
  6. pycharm更换源(换源)(镜像源)
  7. css设置元素的宽高为整数,为什么有的浏览器解析出来的宽高是小数?
  8. pytorch torch.Tensor.new_ones()(返回一个与size大小相同的用1填充的张量。 默认返回的Tensor具有与此张量相同的torch.dtype和torch.device)
  9. python 为什么要用astype()函数对numpy数据类型进行转换,而不直接指定其dtype?float(64) float(32) int(64) int(32)(转换为整型int)
  10. linux——管理系统设备之LVM的管理