2012-10-16 86 views
0

我一直試圖在我的應用程序小部件中添加一個AnimationDrawable。我創建了一個xml資源文件,看起來像這樣。它顯示一個帶有燈光的LED的圖像(所以動畫是一個閃爍的LED)。AnimationDrawable在AppWidget中

<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,我沒有看到動畫和一些研究之後發現,你不能在一個應用程序窗口小部件動畫繪製。

幾分鐘後,我解鎖了手機,並且指示燈閃爍,表示動畫正在工作。我的AppWidgetProvider中沒有任何地方會調用AnimationDrawable#start()方法,所以它不應該閃爍,但它是。

我整整一次地鎖定和解鎖它,有時候led會閃爍,有時卻不會。如果它閃爍(有時),也許有一些事情我可以做,以確保它總是閃爍。

我在運行Android 4.1.1的Galaxy Nexus上運行此操作。我也在Android 2.3.3的手機上測試過這個,而且LED從不眨眼。

+0

我很確定動畫是*不支持,因爲它會是一個非常嚴重的電池豬。也許無論你在銀河系中看到的是一些未定義的行爲。如果你真的必須有一個閃爍的LED,也許你可以有一個後臺服務每500毫秒廣播一個小部件更新消息?但我不一定認爲這是一個好主意。 – Tim

+0

我同意你的觀點,從我讀過的內容看,它不應該閃爍,但它確實如此,所以它必須是AnimationDrawable這樣做的。 – XGouchet

+1

我認爲完成你想要做的事情的方法是使用ViewFlipper,它在RemoteViews中受支持。儘管如此,在電池使用方面看起來並不正確。 –

回答

1

我認爲完成您要做的事情的方法是使用ViewFlipper,它在RemoteViews中受支持。儘管如此,在電池使用方面看起來並不正確。