如何制作自定义吐司填充宽度?

时间:2011-01-16 21:15:16

标签: android

如何在屏幕宽度上填写自定义Toast通知?

我尝试了很多事情,无法让它发挥作用。

感谢。

6 个答案:

答案 0 :(得分:65)

这应该有效:

Toast t = Toast.makeText(this, "Hello", Toast.LENGTH_SHORT);
t.setGravity(Gravity.FILL_HORIZONTAL, 0, 0);

答案 1 :(得分:3)

您可以使用自定义布局和fill_horizo​​ntal创建烤面包。下面的代码是用Adapter类编写的,它工作正常。

            LayoutInflater inflater =(LayoutInflater)mContext
                                     .getSystemService(mContext.LAYOUT_INFLATER_SERVICE);
            View layout =inflater.inflate(R.layout.custom_toast_layout,null);

            TextView text = (TextView) layout.findViewById(R.id.text);
            text.setText("Hello! This is a custom toast!");

            Toast toast = new Toast(mContext);

            //use both property in single function
            toast.setGravity(Gravity.BOTTOM|Gravity.FILL_HORIZONTAL, 0, 0);
            toast.setDuration(Toast.LENGTH_LONG);
            toast.setView(layout);
            toast.show();

答案 2 :(得分:2)

你可以在这里找到http://android-apps-blog.blogspot.com/2011/04/how-to-display-custom-toast-in-android.html关于如何创建自定义Toast通知的好教程。

答案 3 :(得分:1)

请查看此example自定义Toast with Border。

答案 4 :(得分:0)

我会说你应该制作一个Dialog或一个活动(使用对话框主题或你做过的看起来像对话框主题的东西),并显示出来。

在你的时间结束后在oncreate中使用一个定时器,调用finish()

答案 5 :(得分:0)

尝试这样的事情......

    wM = (WindowManager) context.getApplicationContext()
                .getSystemService(Context.WINDOW_SERVICE);
        mParams = new WindowManager.LayoutParams();
        LayoutInflater inflate = (LayoutInflater) context
                .getApplicationContext().getSystemService(
                        Context.LAYOUT_INFLATER_SERVICE);
        v = inflate.inflate(R.layout.custom_toast, null);
        // Set the layout to be like a toast window!
    mParams.gravity = Gravity.WHEREVER YOU WANT IT TO BE
            mParams.height = 200;
    mParams.width = WindowManager.LayoutParams.FILL_PARENT;
    mParams.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL;
    mParams.format = PixelFormat.OPAQUE;
    mParams.type = WindowManager.LayoutParams.TYPE_TOAST;

            wm.addView(v);

            <Timer or whatever>

            wm.removeView(v);