2012-02-10 143 views
33

我有一個簡單的選擇我的ListView動畫選擇/狀態轉換

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:drawable="@drawable/yellow_arc" android:state_activated="true"/> 
    <item android:drawable="@drawable/yellow_nonarc" android:state_activated="false"/> 

</selector> 

我想,當意見的狀態從激活到未激活的和正相反改爲動畫這些繪圖資源之間的過渡。

如果您在API演示中運行example,則會在視圖的激活狀態發生更改時看到明顯的淡入/淡出動畫。

所以我想要的是一個自定義動畫,而視圖的狀態發生了變化。我認爲這應該通過XML完成,但我找不到方法。

在此先感謝。

編輯:

我想我已經找到有用的東西有一個在\Android\android-sdk\platforms\android-API_VERSION\data\res\drawable包括

<selector xmlns:android="http://schemas.android.com/apk/res/android" 
     android:exitFadeDuration="@android:integer/config_mediumAnimTime"> 
    <item android:state_activated="true" android:drawable="@android:drawable/list_selector_background_selected" /> 
    <item android:drawable="@color/transparent" /> 
</selector> 

所以在API-演示achieveing這個淡出動畫的例子activated_background.xml通過宣佈exitFadeDuration。但是,這不完全是我想要的 ..我想聲明自定義動畫的狀態可繪製之間的過渡,因爲淡入/淡出動畫不適合我的繪圖。

回答

0

是你想要的淡入淡出嗎?

我想這將是相同的textSwitcher是如何工作的,也許你想要將其更改爲ViewSwitcher相反,淡入淡出做親語法


Animation in = AnimationUtils.loadAnimation(this, 
       android.R.anim.fade_in); 
     Animation out = AnimationUtils.loadAnimation(this, 
       android.R.anim.fade_out); 

     mSwitcher1.setInAnimation(in); 
     mSwitcher1.setOutAnimation(out); 

+0

A ** TextSwitcher **不是一個好的解決方案。如果我使用它,我必須處理** ListView **中的視圖回收機制,因爲每個列表項目都會有一個**單獨的**切換器。所以這將是一個矯枉過正的問題。我嘗試了類似的東西,很難處理。我相信最好使用選擇器,因爲它們可用,並自己處理選定/未選擇的機制。 – 2012-02-10 01:48:30