【问题标题】:AnimationDrawable in an AppWidgetAppWidget 中的 AnimationDrawable
【发布时间】:2012-10-20 01:10:38
【问题描述】:

我一直在尝试在我的一个应用小部件中添加 AnimationDrawable。我创建了一个看起来像这样的 xml 资源文件。它显示 LED 的图像,灯打开和关闭(因此动画是闪烁的 LED)。

<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false" >
    <item
        android:drawable="@drawable/time_circuits_led_on"
        android:duration="500"/>
    <item
        android:drawable="@drawable/time_circuits_led_off"
        android:duration="500"/>

</animation-list> 

当我在手机上安装 AppWidget 时,我没有看到任何动画,并且经过一些研究发现您无法在应用小部件中为 drawable 设置动画。

几分钟后我解锁了手机,LED 闪烁,表示动画正在运行。在我的 AppWidgetProvider 中,我没有调用 AnimationDrawable#start() 方法,因此它不应该闪烁,但它确实如此。

我多次锁定和解锁它,有时 LED 闪烁,有时不闪烁。如果它(有时)闪烁,也许我可以做一些事情来确保它总是闪烁。

我在 Galaxy Nexus 上运行它,运行 Android 4.1.1。我还在 Android 2.3.3 的手机上对此进行了测试,并且 LED 从不闪烁。

【问题讨论】:

  • 我很确定动画是支持的,因为它会非常耗电。也许您在 Galaxy 上看到的任何东西都是一些未定义的行为。如果您真的必须有一个闪烁的 LED,也许您可​​以让后台服务每 500 毫秒广播一次小部件更新消息?不过,我不一定认为这是个好主意。
  • 我同意你的看法,从我读到的内容来看,它不应该闪烁,但它确实会闪烁,而且会经常闪烁,所以一定是 AnimationDrawable 这样做。
  • 我认为完成你想要做的事情的方法是使用 ViewFlipper,它在 RemoteViews 中受支持。不过,就电池使用而言,这看起来不太对。
  • @YuliaRogovaya 感谢您的提示,这确实有效。至于电池,我将对其强度进行基准测试,我将对其进行基准测试。如果你愿意回答这个问题,我会接受的
  • 不客气!我会回答这个问题

标签: android android-animation android-appwidget


【解决方案1】:

我认为完成您想要做的事情的方法是使用 ViewFlipper,它在 RemoteViews 中受支持。不过,就电池使用而言,这看起来不太对。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 2013-07-25
    相关资源
    最近更新 更多