簡體   English   中英

Android主屏幕小部件動畫

[英]Android homescreen widget animations

我正在尋找創建一個支持動畫的小部件,理想情況下通過android.view.animation框架,否則通過在后台服務觸發的代碼中設置遠程視圖的屬性。

有沒有人對這兩種方法都有任何經驗,而且我正在嘗試做什么,或者我是否正在走向死胡同?

實際上可以為RemoteView小部件設置動畫。 問題是由於在系統進程中運行自定義代碼的安全隱患,它是超級限制的。

我的意思是Android只能使用通過xml綁定到布局的res / anim xml文件中表示的動畫。 一些RemoteView小部件支持這一點

這方面的一個例子是股票Android系統上的新聞和天氣應用程序小部件。 它正在做的是使用ViewFlipper每10秒左右循環一次每個新聞報道。

    <ViewFlipper android:layout_width="match_parent" android:layout_height="wrap_content" android:measureAllChildren="true" android:flipInterval="10000" android:autoStart="true"
android:inAnimation="@android:anim/fade_in" android:outAnimation="@android:anim/fade_out" android:animateFirstView="true">
      <TextView android:id="@+id/Description1TextView" style="@style/AWCText.Centered" android:layout_width="match_parent" android:layout_height="wrap_content"/>
      <TextView android:id="@+id/Description2TextView" style="@style/AWCText.Centered" android:layout_width="match_parent" android:layout_height="wrap_content"/>
      <TextView android:id="@+id/Description3TextView" style="@style/AWCText.Centered" android:layout_width="match_parent" android:layout_height="wrap_content"/>
      <TextView android:id="@+id/Description4TextView" style="@style/AWCText.Centered" android:layout_width="match_parent" android:layout_height="wrap_content"/>
    </ViewFlipper>

在此示例中,您可以將掛起的意圖綁定到每個TextView。 因此,當用戶點擊任何一個時,可能會發生不同的操作。

最后,Android在每個版本中都慢慢添加了對動畫視圖的支持。 例如,TransitionDrawables(交叉漸變選擇器drawable)在Android 3.0之前不會交叉淡入淡出。

你可以在你的小部件上只有像fadeIn或fadeOut這樣的簡單動畫,它非常簡單,你不需要任何布局動畫,只需使用ViewFlipper(我花了3天時間調查才發現它很容易)。

然而,如果不使用自定義發射器來編寫非常棒的東西是不可能的

這是可能的,但請謹慎使用,因為它對於默認的主屏幕實現來說非常沉重,所以不應經常使用它。

Mario Coin Block小部件中 ,我使用這種技術來制作動畫,您可以查看源代碼: http//code.google.com/p/mario-coin-block/source/browse/trunk/MarioWidget。 coinBlock / src目錄/ COM / gueei /馬里奧/ coinBlock /查看/ CoinBlockView.java

基本上這個想法是在屏幕外的Bitmap上手動繪制,並使用RemoveViews Call替換BitmapView的位圖。

我同意這里的其他答案,所以我不會重復 - 小部件上的限制動畫是可能的,但資源很重,可能會使主屏幕變慢,響應速度慢,電池耗盡。 根據我的經驗 - 它並不順利。 所以最重要的是 - 如果只有少數幀不時變化,或者某些影響很少發生在事件上(例如用戶按下或來自您服務的某些事件),那就沒關系了。

但是這個想法可能並不直接回答你的問題,但可能是一個合適的選擇(我不知道你的用例,它可能根本不相關)你考慮過實現動態壁紙嗎?

專業 - 最高質量的動畫,可以從后台控制

缺點 - 不是互動,取代了用戶的壁紙......而且很難滿足每個人的口味

RemoteViews上無法進行動畫制作,RemoteViews更新可以每30分鍾(或手動)一次的速度發生......

無論如何,您可以嘗試以下鏈接: is-there-a-way-to-animate-on-a-home-widget

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM