Android为Toast添加自定义动画

时间:2013-08-03 15:27:48

标签: android android-animation toast android-custom-view

我需要创建自定义动画吐司消息。现在我需要知道这是否可行。我用自定义视图创建了一个toast,但我无法弄清楚如何在toast中添加自定义动画。

这是我到目前为止的代码。

    private void showToast() {
        LayoutInflater inflater = getLayoutInflater();

        View layout = inflater.inflate(R.layout.custom_toast,
                (ViewGroup) findViewById(R.id.custom_toast_layout_id));

        // set a message
        TextView text = (TextView) layout.findViewById(R.id.toast_text);
        text.setText("Button is clicked!");

        // Toast...
        Toast toast = new Toast(getApplicationContext());
        toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
        toast.setDuration(Toast.LENGTH_LONG);
        toast.setView(layout);
        toast.show();       
    }
});
}

2 个答案:

答案 0 :(得分:3)

使用现有的Android Toast类无法做到这一点。库存样式多士(添加到WindowManager而不是ViewGroup)仅限于四个系统动画,不接受项目中的动画。如果您想使用库存类型Android Toasts的不同系统动画,请查看我在SuperToasts library中的操作方式。为一个实例编写这样的类可能不值得,所以我建议使用我的库,如果你发现它有用或者编写一个类似于吐司的自定义视图类。您可以在库的this类中看到我是如何做到的。

答案 1 :(得分:0)

使用无法更改的系统显示Toasts,因此您无法更改Toast动画。 但是你可以自己制作类似吐司的视图,并根据需要设置动画。