2013-07-29 39 views
0

我正在使用TransitionDrawable爲按鈕創建交叉淡化動畫。按下一次後,該按鈕會打開我的服務併發生轉換。再次按下時,該按鈕將關閉我的服務併發生反向轉換。該過渡的XML代碼如下: -Android:設置TransitionDrawable在活動恢復時顯示相同的圖像?

<?xml version="1.0" encoding="UTF-8"?> 
<transition xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/main_off" /> 
    <item android:drawable="@drawable/main_on" /> 
</transition> 

的問題是,當活動暫停時,一旦恢復TransitionDrawable回覆到繪製對象main_off(即,一個在索引/層0)。我可以檢查我的服務是否正在onResume()中運行,因此我的標誌變量已準備就緒。我無法管理的是如何將TransitionDrawable設置爲該xml文件中的一個Drawables,即如果該服務正在運行,如何將onTransactionDrawable設置爲onResume()中的main_on?我嘗試使用setDrawableByLayerId()方法,但它似乎並沒有工作。不知道如果我只是沒有正確使用它。任何幫助表示讚賞。謝謝。

回答

1

沒關係,找到了解決辦法。

我把下面的代碼在我的onResume(): -

if(DRAWABLE_STATE==0) 
     TD_BG.resetTransition(); 
else if(DRAWABLE_STATE==1) { 
     TD_BG.resetTransition(); 
     TD_BG.startTransition(0);} 

在上面的代碼,DRAWABLE_STATE是保持的服務是否或不跟蹤的標誌。 resetTransition()將TransitionDrawable設置爲顯示第一層,因此當我的服務關閉時,它將顯示main_off。如果我的服務處於打開狀態(即DRAWABLE_STATE = 1),我只需切換到第一層,然後過渡得如此之快(0毫秒),用戶看不到差異。