Android:按钮动画后启动活动

时间:2016-08-17 00:01:01

标签: java android animation onclicklistener start-activity

我使用了一个android library制作一个动画效果很好的提交按钮(下面的代码),按下按钮后,想要开始一个新的活动,但只有在动画结束后,我该怎么做去做?

按钮的Xml代码" submitButton":

<com.spark.submitbutton.SubmitButton
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:text="Submit"
        android:textColor="@color/gray"
        app:sub_btn_background="@color/white"
        app:sub_btn_duration="3000"
        app:sub_btn_line_color="#99FF00"
        app:sub_btn_ripple_color="#99FF00"
        app:sub_btn_tick_color="@color/white"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"
        android:id="@+id/submitButton" />

提交java文件和动作监听器的按钮:

 SubmitButton submitButton = (SubmitButton) findViewById(R.id.submitButton);
        submitButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(MainActivity.this,ListViewActivity.class));
            }
    });

2 个答案:

答案 0 :(得分:3)

如果该自定义按钮没有为其动画提供侦听器,则无法知道其动画何时完成。

或者,您可以使用该动画的持续时间,并在postDelayed(runnable, duration)

中开始您的活动
new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            startActivity(new Intent(MainActivity.this,ListViewActivity.class));
        }
    }, duration);

您也可以使用new Handler()

中的v替换onClick(View v)

答案 1 :(得分:2)

不是直接启动活动,而是在runnable中包含调用,并使用3000 ms延迟调用postDelayed。 喜欢这个

public void onClick(View v) {
    Runnable r = new Runnable()
    {
        public void run()
       {
            startActivity(new Intent(MainActivity.this,ListViewActivity.class));
        }
    }
    v.postDelayed(r, 3000);
}