首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何动态更改Android AnimationDrawable动画的持续时间?

要动态更改Android AnimationDrawable动画的持续时间,可以通过以下步骤实现:

  1. 创建AnimationDrawable对象并添加帧:首先,创建一个AnimationDrawable对象,并使用addFrame()方法添加动画的每一帧。例如:
代码语言:java
复制
AnimationDrawable animation = new AnimationDrawable();
animation.addFrame(getResources().getDrawable(R.drawable.frame1), 100);
animation.addFrame(getResources().getDrawable(R.drawable.frame2), 200);
animation.addFrame(getResources().getDrawable(R.drawable.frame3), 300);
// 添加更多帧...
  1. 设置动画的持续时间:使用setOneShot()方法设置动画是否只播放一次。如果设置为false,则动画将循环播放。例如:
代码语言:java
复制
animation.setOneShot(false);
  1. 设置动画的持续时间:默认情况下,AnimationDrawable会根据每一帧的持续时间自动计算动画的总持续时间。如果要动态更改动画的持续时间,可以使用setDuration()方法设置每一帧的持续时间。例如:
代码语言:java
复制
animation.setDuration(500); // 设置每一帧的持续时间为500毫秒
  1. 将AnimationDrawable应用到ImageView:将AnimationDrawable对象应用到一个ImageView上,以便显示动画。例如:
代码语言:java
复制
ImageView imageView = findViewById(R.id.imageView);
imageView.setImageDrawable(animation);
  1. 启动动画:最后,通过调用start()方法启动动画。例如:
代码语言:java
复制
animation.start();

这样,动画就会按照设置的持续时间进行播放。你可以根据需要调整每一帧的持续时间,以实现动画的动态更改。

推荐的腾讯云相关产品:腾讯云移动应用分析(MTA),该产品提供了移动应用数据分析的能力,可以帮助开发者了解用户行为、应用性能等信息,优化移动应用的用户体验。详情请参考:腾讯云移动应用分析(MTA)

注意:本答案中没有提及亚马逊AWS、Azure、阿里云、华为云、天翼云、GoDaddy、Namecheap、Google等流行的云计算品牌商,如有需要,请自行参考相关文档。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Carson带你学Android:关于逐帧动画的使用都在这里了!

前言 动画的使用 是 Android 开发中常用的知识 可是动画的种类繁多、使用复杂,每当需要 采用自定义动画 实现 复杂的动画效果时,很多开发者就显得束手无策 本文将详细介绍 Android 动画中...逐帧动画的原理 & 使用 目录 1....="true" // 设置是否只播放一次,默认为false > // item = 动画图片资源;duration = 设置一帧持续时间(ms) android:drawable...总结 本文对Android 动画中的 逐帧动画 进行了详细分析 Carson带你学Android动画系列文章: Carson带你学Android:一份全面&详细的动画知识学习攻略 Carson带你学...Android:常见的三种动画类型 Carson带你学Android:补间动画学习教程 Carson带你学Android:属性动画学习教程 Carson带你学Android:逐帧动画学习教程 Carson

76340
  • Android 逐帧动画:关于 逐帧动画 的使用都在这里了!

    前言 动画的使用 是 Android 开发中常用的知识 可是动画的种类繁多、使用复杂,每当需要 采用自定义动画 实现 复杂的动画效果时,很多开发者就显得束手无策 本文将详细介绍 Android 动画中...关于Android 动画的系列文章: 动画的使用,请参考文章: Android 属性动画:这是一篇很详细的 属性动画 总结&攻略 Android 动画:手把手教你使用 补间动画 Android..."true" // 设置是否只播放一次,默认为false > // item = 动画图片资源;duration = 设置一帧持续时间(ms) android:drawable...总结 本文对Android 动画中的 逐帧动画 进行了详细分析 关于Android 动画的系列文章: 动画的使用,请参考文章: Android 属性动画:这是一篇很详细的 属性动画 总结&攻略...接下来,我我将继续对Android 动画进行分析,有兴趣的可以继续关注Carson_Ho的安卓开发笔记 ---- 帮顶或评论点赞!因为你们的赞同/鼓励是我写作的最大动力!

    1.9K30

    2014-10-31Android学习------序列帧动画,开始,结束监听的解决--------GIF动画实现

    我学习Android都是结合源代码去学习,这样比较直观,非常清楚的看清效果,觉得很好,今天的学习源码是网上找的个AnimationTest 源码 百度搜就知道很多下载的地方 网上源码的名字叫:序列帧动画...然后,调用函数run()去启动动画 一个AnimationDrawable(可绘制动画) 是在XML中定义的,它通常是这样定义的(由下面的这些组成):在xml文件中 根节点是的学习我们知道了要想利用这个AnimationDrawable我们必须先去定义一些XML文件,每一个xml文件描述的就是动画要显示的内容,该动画的每一帧动画内容是有来定义的,...(也就是一个xml文件对应有多少帧(item的个数)) 到这里为止,这个类的作用和函数我们都基本掌握了,接下来就是如何在activity中去实现它呢?...public void onEnd() { // 动画结束播放时 // 还原回默认动态图 让视图的背景重新返回初始化时设置的样子 anim_view.loadAnimation(R.drawable.anim_idle

    1.4K30

    Android中的动画

    ​​学习内容 Ø 帧动画 Ø 补间动画 Ø 动画方式切换组件 能力目标 Ø 掌握Android中动画的基本概念及分类 Ø 熟练掌握帧动画的实现 Ø 熟练掌握各种补间动画的实现 Ø 掌握如何使用动画方式实现组件之间的切换效果...编写完动画文件之后,就需要装载动画文件,并创建AnimationDrawable对象。AnimationDrawable是Drawable的子类,它在Drawable的基础之上提供了控制动画的功能。...因为补间动画只需要提供两帧图像(第一帧和最后一帧),并指定动画的持续时间即可。所以补间动画最大的优点是节省硬盘空间。...Ø AlphaAnimation:透明度改变动画,创建该动画时需要指定动画开始时的透明度、结束时的透明度和动画持续时间,其中透明度的变化范围是1~0。...2.3.1 移动补间动画 《水果忍者》也许很多同学都玩过,游戏中玩家需要用手指模拟武士刀将上抛起的各种水果切开,那么这种水果上下移动的动画效果如何实现呢?这里我们就可以使用移动补间动画来实现。

    11510

    AnimationDrawable 实现正在加载的旋转动画

    要实现这样的效果  就是中间的那个   正在拼命加载数据中  然后是那个动画在不停的旋转, 其实这个过程      是在你访问网络数据请求的时候,出现的,一般只停留几秒钟的效果    看了效果图,接下来介绍下这个如何实现的...,首先我们需要去了解他的原理,我这里面使用的是:AnimationDrawable  原理: Drawable animation可以加载Drawable资源实现帧动画。...AnimationDrawable是实现Drawable animations的基本类。 推荐用XML文件的方法实现Drawable动画,不推荐在代码中实现。...android:ellipsize="none" android:textSize="12sp" /> 再次就是动态加载的类: public...,界面上显示的是正在加载的动画 其他的知识: 注意: 一旦给指定View设置Drawable Animation之后,其BackGround就变成AnimationDrawable对象, 代码如下

    2.1K80

    墨迹天气3.0引导动画

    从0%-100%中取值                       50%为物件的X或Y方向坐标上的中点位置           长整型值:               duration  属性为动画持续时间...数据类型的数字         长整型值:             duration  属性为动画持续时间             说明:                      时间以毫秒为单位...toYType 时候,                     默认是以自己为相对参照物  ,默认参考物最重要                 长整型值:            duration  属性为动画持续时间...                         50%为物件的X或Y方向坐标上的中点位置           长整型值:               duration  属性为动画持续时间               ... = (AnimationDrawable) t1_icon1                       .getDrawable();               t1_icon1_animationDrawable.start

    1.1K70

    Android 动画笔记

    其中封装了一个 TimeInterpolator,它定义了动画的插值;还封装了一个 TypeEvaluator,它定义了如何去计算属性值。...在动画播放的过程中,ValueAnimator 会基于动画已经播放的时间和动画的总持续时间来计算流逝比例(elapsed fraction)(范围是 0 到 1),它表示了动画完成的比例。...AnimatorSet:这个类提供了一套机制用于将一组动画合并起来,使得它们能以相互关联的形式播放。 计算器告诉属性动画系统如何计算给定属性的值。...这是一个传统的动画实现方式,这种动画是通过像电影一样按序播放一个包含不同的图片序列来实现的。绘图动画的基础类是 AnimationDrawable 类。...这类动画的 XML 文件应该被放在你的 Android 工程的 res/drawable/ 目录下。你需要在这个文件中说明帧的顺序和持续时间。

    23720

    android ProgressBar(进度条)

    对象 android:indeterminateDuration:设置不精确显示进度的持续时间 android:secondaryProgress:二级进度条,类似于视频播放的一条是当前播放进度...下面我们就来讲解下实际开发中我们对进度条的处理! 2.使用动画来替代圆形进度条 第一个方案是,使用一套连续图片,形成一个帧动画,当需要进度图的时候,让动画可见,不需要 的时候让动画不可见即可!...而这个动画,一般是使用AnimationDrawable来实现的!...好的,我们来 定义一个AnimationDrawable文件: PS:用到的图片素材:进度条图片素材打包.zip 运行效果图: 实现步骤: 在res目录下新建一个:anim文件件,然后创建amin_pgbar.xml...public void run() { ad.start(); } }, 100); } } 这里只是写了如何启动动画

    1.4K20

    Android动画全面解析-夯实基础

    动画持续时间/毫秒 interpolator ->时间插值器,根据时间流逝百分比计算动画进度的百分比 --> android="http://...> 代码里使用: imgGithub.setImageResource(R.drawable.frame); AnimationDrawable animationDrawable = (AnimationDrawable...***也就是说,***它决定了动画如何从初始值过渡到结束值。 理解插值器(Interpolator) 和 估值器(TypeEvaluator) 很重要,它们是实现非匀速动画的重要手段。...在以前的Android版本中,如果我们要动态更改Button的宽度等属性,是一件比较麻烦的事,因为我们没有相应的设置方法。...它可以对一个值做动画,然后我们监听其动画过程,动态的更改我们对象中的属性值,这样也就相当于对我们的view做了动画。 效果都是一样的,所以我们就没必要带图了。

    77810

    Android动画分析

    动画分类 Android动画可以分3种:View动画,帧动画和属性动画;属性动画为API11的新特性,在低版本是无法直接使用属性动画的,但可以用nineoldAndroids来实现(但是本质还是viiew...)和AlphaAnimation(透明度动画),他们即可以用代码来动态创建也可以用XML来定义,推荐使用可读性更好的XML来定义。...不同于View动画,Android系统提供了一个类AnimationDrawable来实现帧动画,帧动画比较简单,我们看一个例子就行了。 [html] view plain copy AnimationDrawable) imageView.getDrawable();   animationDrawable.start();//启动start,关闭stop   属性动画...android:duration ---------持续时间 android:startOffset ---------动画开始延迟时间 android:repeatCount --

    90570

    Android入门之动画

    /播放动画效果 AlphaAnimation animation = new AlphaAnimation(1.0f, 0.0f); //设置Alpha动画的持续时间 animation.setDuration..._2" android:duration="100"/> 播放Frame动画 AnimationDrawable rocketAnimation; public...动画的xml文件通过背景资源设置给图片 rocketAnimation = (AnimationDrawable) rocketImage.getBackground(); //获取到图片的背景资源...并且针对这三种动画的动画模式分为: Property Animation : 属性动画,从Android 3.0开始引进,更改的是对象的实际属性,而且属性动画不止可以应用于View还可以应用于任何对象。...在Property Animation中,可以对动画应用以下属性: Duration: 指定动画持续时间,默认时间是300ms TimeInterpolation: 一些效果,如加速、加速等。

    79870

    Android动画基础 | 概述、逐帧动画、视图动画

    , 逐张地呈现一系列事先加载好的图片而产生动画效果; 定义逐帧动画的方法: 使用AnimationDrawable对象定义逐帧动画; 它是一个Drawable容器(DrawableContainer...>的下层包含若干个, 即一个帧动画对应的一套的若干个帧图; 每一个item设置好每一个帧的图片以及对应的延时; 如此便定义好了AnimationDrawable对象; 接着使用AnimationDrawable...AnimationDrawable的实例变量引用; 使用AnimationDrawable的实例调用start()、stop(), 即可分别做帧动画的开启和关闭; 可以在Activity.java中,...="restart",即重新开始; 我们用为位移动画来诠释: 更改translate.xml: <?..."; 以及,其中旋转动画是方才android:repeatCount="infinite"部分的代码的效果; 现在更改translate.xml: <?

    4K21

    Android开发笔记(十七)GIF动画的实现GifAnimation

    对于这种情况,Android带来了帧动画技术,通过连续播放每帧图片,从而实现帧动画的效果。不过若要使用帧动画,我们得自己准备好若干帧,然后把这些图片帧编入图片队列,这样才可以显示动画。...对于如何从gif文件中提取出每帧图片,博主在之前的文章中有做了说明,详见《Android开发笔记(十)常用的图片加工操作》。 可是手工分解gif文件也太麻烦了,如果gif数量多的话,岂不累坏了。...开发笔记(十五)淡入淡出动画》 5、AnimationDrawable:见本文《Android开发笔记(十七)GIF动画的实现》 6、BitmapDrawable:见本文《Android开发笔记(十七...)GIF动画的实现》 7、GradientDrawable:详见《Android开发笔记(十八)书籍翻页动画》 下面是GIF动画和帧动画的效果图 ?...点击下载本文用到的GIF动画和帧动画的工程代码 点此查看Android开发笔记的完整目录

    1.2K60

    android-drawable子类介绍

    如果你想自己动态的绘制二位图形,那么我们就可以使用ShapeDrawable资源对象,用ShapeDrawable,我们可以绘制我们所能想象的形状。。...wrap_content" android:layout_width="wrap_content" /> AnimationDrawable(动画) android...上述动画运行了3个帧,通过设置android:oneshot 属性(attribute)为true,动画会循环一次并停留在最后一帧,如果为false那么会轮询(loop)的运行动画 我们可以通过编码来加载播放动画...frameAnimation.start(); 注意:AnimationDrawable. start()方法不能够在Activity的onCreate()方法中调用,因为AnimationDrawable...还未完全的附加(attached)到Window,如果你不需要交互而立即播放动画,那么可以在onWindowFocusChanged() 方法中,这个方法会在你的Activity Windows获取焦点是触发

    46010
    领券