0

单击时,我想在 ImageButton 中进行以下操作:

1-两倍大小

2-在第1步之后,开始减少直到它是一个点,同时使用淡出效果

3-保持不可见

我怎样才能做到这一点?

4

2 回答 2

1

为此使用ScaleAnimation,它会使 ImageButton 的大小加倍

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

现在,

top.startAnimation(setSizeForTop);

用于减小尺寸

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

对于我们使用的淡出效果

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);
于 2013-06-13T01:26:07.770 回答
0

看看 Honeycomb 中引入的 ValueAnimator(但也向后移植到了一个名为 NineOldAndroids 的库中)。

在您的 onClick 按钮中,您将从 XML 加载动画,或以编程方式创建动画,然后启动它。

您可以使用动画师集一个接一个地运行多个动画。

下面是一些(未经测试的)示例代码:

    //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();
于 2013-06-13T01:27:08.093 回答