循环Android动画 - 三个按钮在同一地点一个接一个地出现并消失

时间:2013-12-21 21:34:08

标签: android android-animation

我的应用首次启动时会加载以下片段。 它只显示一个看起来像横幅的按钮,并提示用户采取特定的操作。

现在,此按钮在3秒钟内淡入淡出。

按钮是紫色的,但我想做的是让它淡入淡出3次,先是紫色,然后是蓝色,然后是绿色。 (我还有两个我想要使用的按钮/横幅。)

  

紫色按钮:3秒淡化/淡出+ 6秒等待蓝色按钮:   3秒等待+ 3秒fadein / fadeout + 3sec等待
绿色按钮:6秒   等待+ 3秒fadein / fadeout

所有这一切都在无尽的圈子里。 我怎么能这样做?

public class StartFragment extends Fragment
{
    AlphaAnimation fadeIn = new AlphaAnimation(0.0f , 1.0f );

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.start, container, false);
    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState)
    {
        super.onViewCreated(view, savedInstanceState);

        Button scanBanner = (Button) getView().findViewById(R.id.ScanBanner);

        fadeIn.setDuration(1500);

        scanBanner.startAnimation(fadeIn);

        fadeIn.setRepeatCount(Animation.INFINITE);
        fadeIn.setRepeatMode(Animation.REVERSE);
    }
}

1 个答案:

答案 0 :(得分:1)

您可以添加动画侦听器来更改颜色。注意每隔一次重复只改变颜色,以便首先将淡出淡出为零。

fadeIn.setAnimationListener(new AnimationListener() {
    private int cycle = 0;
    public void onAnimationRepeat() {
        cycle = (cycle + 1) % 6;
        if (cycle == 0) {
            scanBanner.setBackgroundResource(R.drawable.purple);
        } else if (cycle == 2) {
            scanBanner.setBackgroundResource(R.drawable.blue);
        } else if (cycle == 4) {
            scanBanner.setBackgroundResource(R.drawable.green);
        }
    }
});