2

我需要创建一个自定义动画吐司消息。现在我需要知道这是否可能。我用自定义视图创建了一个 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();       
    }
});
}
4

2 回答 2

2

使用现有的 Android Toast 类是不可能做到这一点的。Stock 风格的 toast(添加到 WindowManager 而不是 ViewGroup 的)仅限于四个系统动画,并且不会接受项目中的动画。如果您想在库存类型 Android Toasts 中使用不同的系统动画,请查看我的SuperToasts 库中的操作方法。为一个实例编写这样的类可能不值得,因此如果您发现它有用,我建议使用我的库或编写类似于 toast 的自定义视图类。您可以在图书馆的此类中看到我是如何做到的。

于 2013-12-11T18:46:46.860 回答
0

Toast 使用无法更改的系统显示,因此答案是否定的,您无法更改 toast 动画。但是,您可以制作类似于 toast 的自己的视图,并根据需要对其进行动画处理。

于 2017-08-23T12:22:34.453 回答