我想要有一個View
,它最初是不可見的,當我按下按鈕時,它在動畫淡入淡出時變爲可見。我正在使用AlphaAnimation
來消除褪色效果。問題是,如果我使視圖不可見,則無法看到動畫。在動畫中使用淡入淡出的視圖
非常感謝,
的Gratzi
我想要有一個View
,它最初是不可見的,當我按下按鈕時,它在動畫淡入淡出時變爲可見。我正在使用AlphaAnimation
來消除褪色效果。問題是,如果我使視圖不可見,則無法看到動畫。在動畫中使用淡入淡出的視圖
非常感謝,
的Gratzi
提供一個AnimationListener
的動畫,並儘快動畫開始使視圖可見。
http://developer.android.com/reference/android/view/animation/Animation.AnimationListener.html
假設你有一個ImageView
名爲imageView
和動畫文件your_fade_in_anim.xml
你的資源內\動畫\文件夾:
ImageView imageView = (ImageView) findViewById(R.id.imageView);
Animation fadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.your_fade_in_anim);
// Now Set your animation
imageView.startAnimation(fadeInAnimation);
你的XML
<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:duration="[duration (in milliseconds)]"
android:repeatCount="infinite" />
</set>
更換支架與您的實際持續時間。
而不是無限重複計數和隱藏/查看您的視圖,我建議只是不重複動畫,並開始以alpha通道設置爲最大。然後你可以使用:
<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:duration="[duration (in milliseconds)]"
android:repeatCount="0" />
</set>
而你完成了。不需要聽衆,隱藏或顯示。就像一樣簡單。
非常感謝,男士!問題在於如果視圖不可見,則不執行應用程序,因此onStartAnimation方法無法使用。但是在開始動畫之前,我已經在按鈕的偵聽器中設置了視圖,並且我將視圖設置爲在onEndAnimation中不可見。 – Gratzi
我不明白你爲什麼在onEndAnimation中將動畫設置爲不可見,在你最初的問題中你說你希望它淡入並變得可見,爲什麼你在onEndAnimation中設置爲不可見? – Ixx