2012-06-04 2 views
1

Я хочу создать анимацию для изображения, которое динамически загружается в вертикальную линейную компоновку. При срабатывании я хотел бы, чтобы изображение соскальзывало с его альфа-настройкой на 0 (это, я надеюсь, уменьшит весь контент ниже него), а затем исчезнет изображение. Будучи новым для анимации Android, у меня возникают некоторые проблемы. Сейчас я пытаюсь получить только фейдера работать, вот что у меня есть:Android-анимация для динамически загружаемого изображения

fade_in.xml

<?xml version="1.0" encoding="utf-8"?> 

<alpha 
    xmlns:android="https://chemas.android.com/ap/res/android" 
    android:interpolator="@android:anim/anticipate_interpolator" 
    android:fromAlpha="0.0" 
    android:toAlpha="1.0" 
    android:duration="5000" > 
</alpha> 

В деятельности:

Animation animation = AnimationUtils.loadAnimation(context, R.anim.fade_in); 

ImageView image = new ImageView(context); 
image.setImageResource(R.drawable.my_image); 
image.setLayoutParams(layoutParams); 
image.setAlpha(0); 

((ViewGroup) view).addView(image, 0); 

image.startAnimation(animation); 

Изображение быть загружаемый, поскольку весь контекст ниже его сдвинут вниз, однако, если он никогда не затухает. Я хотел бы, чтобы это работало, а также чтобы изображение скользило вниз, так что динамическое добавление не выглядит таким прерывистым.

Заранее спасибо.

ответ

1

У вас есть опечатка в теге xmlns:android.

Это должно быть

xmlns:android = "http://schemas.android.com/apk/res/android"

С, что исправляется, просто удалите image.setAlpha(0); и он должен оживить. Я боюсь, что не могу объяснить вам, почему это не работает с атрибутом альфа, установленным в 0.

Что касается анимации слайд-вниз, вам придется подкласс Animation. Посмотрите на этот ответ, который, я думаю, поможет вам получить то, что вы хотите: https://stackoverflow.com/a/5122460/871102

+0

Спасибо за информацию - поэтому опечатка сделала работу анимации, однако вместо того, чтобы затухать более чем за 5 секунд, просмотр ждет 5 секунд, затем альфа меняется мгновенно от 0 до 100. Любое лекарство от этого? – jjNford

+0

Это из-за интерполятора. В вашем случае я бы использовал 'android: interpolator =" @ android: anim/linear_interpolator "'. Интерполятор определяет, как анимация изменяется во времени. –

+0

Thx @Xavi, который зафиксировал его, теперь, чтобы он скользил вниз. – jjNford

Смежные вопросы