簡體   English   中英

Android:將TransitionDrawable設置為在活動恢復時顯示相同的圖像嗎?

[英]Android: Set TransitionDrawable to show the same image when activity resumes?

我正在使用TransitionDrawable為按鈕創建淡入淡出動畫。 按下一次,該按鈕將打開我的服務,並且會發生轉換。 再次按下該按鈕將關閉我的服務,並且發生反向轉換。 此過渡的xml代碼如下:-

<?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就會恢復為Drawable main_off(即索引/層0處的那個)。 我可以檢查我的服務是否正在onResume()中運行,因此我的標志變量已准備就緒。 我無法管理的是如何將TransitionDrawable設置為該xml文件中的Drawable之一,即如果服務正在運行,如何在onResume()中將TransitionDrawable設置為main_on? 我嘗試使用setDrawableByLayerId()方法,但似乎無法正常工作。 不知道我是否只是沒有正確使用它。 任何幫助表示贊賞。 謝謝。

沒關系,找到了解決方案。

我將以下代碼放在我的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),我只是切換到第一層,然后轉換得如此之快(0ms),用戶看不到任何區別。

暫無
暫無

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

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