2013-10-04 6 views
1

У меня есть эта анимация, которая должна перемещать прикладное представление из представления во время затухания, переместить его обратно под представлением, а затем вернуться в представление во время замирания.Android Alpha/Translate Animations

Проблема в том, что она, кажется, не исчезает - непрозрачность прикладного вида всегда 0.5.

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

    <translate 
     android:fromYDelta="0" 
     android:toYDelta="-200" 
     android:interpolator="@android:anim/accelerate_interpolator" 
     android:duration="1995" 
     android:startOffset="3000" /> 
    <translate 
     android:fromYDelta="200" 
     android:toYDelta="0" 
     android:interpolator="@android:anim/accelerate_interpolator" 
     android:duration="1995" 
     android:startOffset="8005" /> 

    <alpha 
     android:duration="500" 
     android:fromAlpha="1.0" 
     android:interpolator="@android:anim/accelerate_interpolator" 
     android:repeatMode="reverse" 
     android:startOffset="3000" 
     android:toAlpha="0.5" /> 
    <alpha 
     android:duration="1995" 
     android:fromAlpha="0.5" 
     android:interpolator="@android:anim/accelerate_interpolator" 
     android:repeatMode="reverse" 
     android:startOffset="8005" 
     android:toAlpha="1.0" /> 
</set> 

Я попробовал несколько вещей, гнездящихся их в наборах, удаление интерпол и т.д ... Единственное, что работал использует пример, приведенный в этом так вопрос: android two alpha animations который заставляет меня верить, что это что-то делать с альфа-анимацией в сочетании с трансляционной анимацией.

Спасибо!

ответ

0

вам не нужно использовать два tranlate/альфа-анимацию, чтобы получить то, что вы хотите, просто использовать пользовательский интерполятор

редактирование: см моего ответа от вчера Fade out animation works but opposite fade in animation does not

+0

и конечно repeatMode = «обратный» никогда не должны появляться здесь – pskink

+0

Это было что-то я скопированный из вопроса SO, чтобы получить его на работу (или не в зависимости от обстоятельств может быть). Я дам пользовательский интерполятор. – Jamie

+0

см. Мой измененный ответ – pskink

3

Это пример:

AnimationSet set = new AnimationSet(true); 
Animation trAnimation = new TranslateAnimation(0, 500, 0, 0); 
trAnimation.setDuration(6000); 

trAnimation.setRepeatMode(Animation.REVERSE); ---------> This will make the view translate in the reverse direction 

set.addAnimation(trAnimation); 
Animation anim = new AlphaAnimation(1.0f, 0.0f); 
anim.setDuration(3000); 
set.addAnimation(anim); 

txtView.startAnimation(set); --------> replace this with your view 

I hope this helps! You can change this and use the a layout based animation defining the alpha and translate animations under the set tag. 
+0

Я должен был упомянуть, что я также пробовал сделать это в' C#' (это MonoDroid) - точно так же результат получается. – Jamie

+0

Спасибо @Rat. Это сработало – Prashant

2

Вы должны попробовать это :::

<alpha 
    android:duration="200" 
    android:fromAlpha="1.0" 
    android:repeatCount="1" 
    android:repeatMode="reverse" 
    android:toAlpha="0.0" /> 

<translate 
    android:duration="200" 
    android:fromXDelta="0" 
    android:repeatCount="1" 
    android:repeatMode="reverse" 
    android:toXDelta="50" />