问题标签 [animationdrawable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4377 浏览

android - 无限重复 AnimationDrawable 并在按钮单击时停止

我已经创建了一个 AnimationDrawable 并且我想重复该动画无限次数并在单击按钮时停止该动画,我正在分享我的代码

动画.xml 文件

在我的布局文件中

在我开始动画的活动中

0 投票
2 回答
5442 浏览

android - 如何在android中设置动画切换按钮

我创建了一个动画切换按钮,就像有人在这个SO question 中所做的那样。它工作正常但有一个小问题,当第一次创建布局时,我的切换按钮背景是动画绘制的第一帧(它应该是它的最后一帧)。一旦我第一次点击它,它就可以正常工作。

编辑:toggle_pause_anim.xml:

toggle_pause_anim.xml:

toggle_play_pause_anim.xml:

toggle_play_pause_bg:

ToggleButton在我的 layout.xml 中:

不,我确实在创建时将检查设置为 false。

是我得到的视频。问题是第一次加载布局时(图标应该是播放,而不是暂停)。如您所见,在第一次更改之后,它可以正常工作。

0 投票
1 回答
283 浏览

android - 使用 AnimationDrawable 在 ListView 中查看回收

所以我有一个带有自定义适配器的 ListView,它允许我在项目点击时“选择”一个项目。Now every row of the list has an ImageView whose Drawable I change to a "selected" image when the respective item is selected. 在我的棒棒糖设备上工作正常。

我在列表适配器的构造函数中构造了 Drawables

现在,如您所见,“选定”项目是一个 AnimationDrawable,只要选择一个视图就会播放(顺便说一句,它是单选模式)。

视图在 getView 方法中更新

我会假设 AnimationDrawable 对所有列表项都有一个“全局”状态。因此,在构造函数中启动一次动画应该让动画一直播放,对于每个列表项。

我设法为每个项目播放动画,例如通过在构造函数中启动它或在 getView 方法中使用 post() 调用。但是,我省略了那部分代码,因为我想专注于稍微不同的事情。

这是问题: 当我在播放动画时选择不同的列表项(oneshot = false),如果新选择的项目的动画低于旧项目的位置,则将播放但如果它高于旧项目的位置,则不会播放名单。所以,我选择了第一项。动画播放。选择第二项,动画播放。选中第三项,播放动画....选中第 10 项,播放动画。在另一个方向,这是行不通的。如果我播放第 10 个项目的动画并选择位置 1-9 的项目之一,则根本不会播放动画。在播放新动画之前,我必须等待正在运行的动画结束。

如果每次调用 getView 时我都从资源中获取 Drawable,这种行为就会发生变化——那么它工作得非常好。所以在getView

我的猜测是,这与列表中的视图回收有关。我应该怎么做才能在每次 getView 调用中从资源中保存可绘制对象的(昂贵的?)实例化?

问题:为什么会这样?如何正确设置动画?为每个新动画开始(可能不是)从资源中获取可绘制动画是否聪明?怎么做才对?

0 投票
0 回答
567 浏览

android - 多视图中使用的 Android Single Animation Drawable 实例

我有一个AnimationDrawable包含大型动画的 android。(每 100x100 像素 24 帧)。我想在不同大小的多个视图中同时并同步地显示这个动画。我的意思是当 view1 显示 frame1 时,所有其他视图也必须显示 frame1,并且所有视图同时可见。

我尝试创建一个AnimationDrawable,并将其用作多个视图的背景可绘制对象,并使用了 animationdrawable.start()。但在此之后,只有我的一个视图有动画效果,而其他视图则停留在 frame1。

我看过这些线程

单个动画 - 多个视图

同时将一个动画应用于多个视图

但答案都包括创建多个动画实例。我应该避免这种情况,因为多次加载动画会占用大量内存,因为动画很大。

我想知道是否有人知道它是如何实现的?

PS> 我也尝试使用静态位图作为可绘制对象,但为每个视图调整大小需要同步并大量增加 CPU 使用率。

除了使用AnimationDrawable.

一个附带问题:每次我们使用资源时,android 是否会耗尽内存?例如,如果我创建 20 个 ImageView 并将它们的资源设置为 R.drawable.mydrawable,那么使用的内存是否等于 20 * memory_used_for_decoding_mydrawable?

0 投票
1 回答
41 浏览

android - 可能的动画可绘制路径?

我是动画的新手,我的第一个动画绘制完成。只有两个PNG,但它运行。但我还没有找到移动图片或旋转它们的解决方案。这可能吗?

0 投票
0 回答
68 浏览

android - 是否可以将不确定进度(旋转轮)设置为图像视图?

我正在使用 FAB,我想将图像设置为 Indeterminate Progress (Spinning Wheel),我在想是否有可以设置的 AnimationDrawable?

0 投票
0 回答
291 浏览

android - AnimationDrawable android的帧更改事件

我创建了一个带有位图帧的 AnimationDrawable 对象。接下来我想做的是,每次动画中的帧发生变化时执行一个功能。但我不知道我将如何实现这一目标。

是否有任何可用的内置或自定义方法可以触发帧更改?请帮忙!

为了创建和启动动画,我使用了如下代码:

0 投票
1 回答
148 浏览

android - 逐渐改变应用程序的背景

我有一个具有特定背景的应用程序,我想通过单击按钮将其更改为非常好的和逐渐的不同背景。

我尝试通过将根布局的背景属性设置为我的可绘制文件夹中的两个 png 文件来使用 objectanimator 执行此操作,但它不起作用,因为背景值的类型是可绘制的。

我的根布局是相对布局,我想改变它的背景。

,并且 objectanimator 不采用值不是 int、float 等的属性,在我的情况下,我有可绘制类型。

在没有任何库的情况下完成此任务的最佳方法是什么?

0 投票
0 回答
494 浏览

animationdrawable - 我如何在 Android 中暂停和恢复 AnimationDrawable?

我想暂停并继续AnimationDrawable。但我不能。我怎样才能做到这一点?

或者我可以ObjectAnimator和其他人做同样的动画吗?

如果我可以做同样的动画,ObjectAnimator我该怎么做?有什么教训或例子吗?

0 投票
1 回答
280 浏览

android - 尝试在Android中一个接一个地加载多个逐帧动画时出现OutOfMemoryError

我有几个逐帧动画 ( animation-list)。将其中任何一个加载到 ImageView 都不是问题。当我尝试在同一个 ImageView 中加载不同的动画时,就会出现问题。

这是我正在使用的代码。在多次调用该函数后得到 java.lang.OutOfMemoryError后,我添加了以下代码以尝试清除AnimationDrawableImageView

好吧,这没有用。我已经尝试过这里这里发布的解决方案,但它们也没有奏效。我仍然不断得到OutOfMemoryError

这就是我调用startAnimation函数的方式。

那么,如何释放内存并加载动画?请注意,我想一遍又一遍地这样做。