2012-02-10 34 views
33

Tôi có một selector đơn giản cho ListView của tôiAnimate chuyển selector/tiểu bang

<?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> 

Tôi muốn animate chuyển tiếp giữa những drawables khi trạng thái của các quan điểm được thay đổi từ kích hoạt để không kích hoạt và vica lại.

Nếu bạn chạy example trong bản trình diễn API, bạn sẽ thấy hoạt ảnh mờ dần/mờ dần rõ ràng trong khi trạng thái kích hoạt của chế độ xem được thay đổi.

Vì vậy, những gì tôi muốn là hoạt ảnh tùy chỉnh trong khi trạng thái của chế độ xem được thay đổi. Tôi nghĩ rằng nó nên được thực hiện thông qua xml nhưng tôi không thể tìm thấy một cách.

Xin cảm ơn trước.

EDIT:

Tôi đoán tôi đã tìm thấy một cái gì đó hữu ích có một activated_background.xml trong \Android\android-sdk\platforms\android-API_VERSION\data\res\drawable trong đó bao gồm

<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> 

Vì vậy, ví dụ trong API-demo achieveing ​​hoạt hình fade-out này bằng cách khai báo một số exitFadeDuration. Tuy nhiên, đây không phải là chính xác những gì tôi muốn .. Tôi muốn khai báo hoạt ảnh tùy chỉnh để chuyển đổi giữa các trạng thái có thể rút ra được từ hoạt ảnh mờ dần/mờ dần.

Trả lời

0

Đó có phải là phai bạn muốn không?

Tôi đoán nó sẽ được giống như làm thế nào một textSwitcher hoạt động, có lẽ bạn muốn thay đổi nó vào một ViewSwitcher thay vào đó, các phai được thực hiện ủng hộ về mặt ngữ pháp


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 ** sẽ không phải là giải pháp tốt. Nếu tôi sử dụng nó, tôi phải xử lý cơ chế tái chế chế độ xem bên trong ** ListView ** vì mọi mục danh sách sẽ có trình chuyển đổi ** riêng **. Vì vậy, nó sẽ là một overkill. Tôi đã thử một cái gì đó tương tự như thế này và thật khó để xử lý. Tôi tin rằng tốt hơn nên sử dụng các bộ chọn vì chúng có sẵn và tự xử lý cơ chế được chọn/không được chọn. –