Ответ 1
Предоставьте AnimationListener
для анимации и сделайте вид видимым, как только начнется анимация.
http://developer.android.com/reference/android/view/animation/Animation.AnimationListener.html
Я хочу иметь View
, который изначально невидим, и когда я нажимаю кнопку, он становится видимым с затуханием в анимации. Я использую AlphaAnimation
для эффекта затухания. Проблема в том, что если я сделаю вид невидимым, анимация не будет видна.
Большое спасибо,
Gratzi
Предоставьте AnimationListener
для анимации и сделайте вид видимым, как только начнется анимация.
http://developer.android.com/reference/android/view/animation/Animation.AnimationListener.html
Предположим, что у вас есть ImageView
с именем ImageView
и файл анимации your_fade_in_anim.xml
внутри вашего res\anim\folder:
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>
Замените скобки вашей фактической продолжительностью.
Вместо бесконечного количества повторов и скрытия/просмотра вашего представления я предлагаю просто не повторять анимацию и сначала начинать с установленного максимального альфа-канала. Затем вы можете использовать:
<?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>
И все готово. Нет необходимости прослушивать, скрывать или показывать. Так же просто.