2013-06-13 2 views
0

Я хочу сделать следующее в ImageButton при нажатии:Список анимации в представлении

1- удвоить его размер

2- после шага 1, начать сокращение, пока это не точка, а в то же время с помощью плавного уменьшения эффекта

3- держать его невидимым

Как я могу это сделать?

ответ

1

Для этого используйте ScaleAnimation, Он удвоит размер ImageButton

ScaleAnimation setSizeForTop = new ScaleAnimation(1, 2, 1, 2); 

теперь

top.startAnimation(setSizeForTop); 

для уменьшения размера

setSizeForTop = new ScaleAnimation(1, .5f, 1, .5f); 

для Fade Out эффекта мы использование

Animation fadeOut = new AlphaAnimation(1, 0); 
fadeOut.setInterpolator(new AccelerateInterpolator()); //and this 
fadeOut.setStartOffset(1000); 
fadeOut.setDuration(1000); 

AnimationSet animation = new AnimationSet(false); //change to false 
animation.addAnimation(fadeIn); 
animation.addAnimation(fadeOut); 
this.setAnimation(animation); 

для невидимого

ImageButton.setImageVisibility(gone); 
0

Посмотрите на ValueAnimator, который был введен в сотах (но также портированном в библиотеке под названием NineOldAndroids).

В ваших кнопках onClick вы загрузите анимацию из XML или создадите ее программно и запустите ее.

Вы можете использовать набор аниматоров для запуска нескольких анимаций один за другим.

Heres некоторые (непроверенные) пример кода:

//set up the scale and fade animation set 
    AnimatorSet scaleAndFadeSet = new AnimatorSet(); 
    scaleAndFadeSet.playTogether(ValueAnimator.ofFloat(myButton, "alpha", 1.0f, 0f), ObjectAnimator.ofFloat(myButton, "scale", 2.0f, 0f)); 

    // the top level animation set 
    AnimatorSet set = new AnimatorSet(); 
    set.playTogether(ObjectAnimator.ofFloat(myButton, "scale", 0, 2.0f),scaleAndFadeSet); 
    set.setDuration(1000);// 1s animation 
    set.start(); 
Смежные вопросы