Android中的自定义吐司

时间:2014-02-03 04:09:47

标签: android

我正在制作一个自定义吐司,代码片段如下所示我为此目的充气自定义布局,我需要务实地设置布局参数,

Context context = getApplicationContext();
        // Create layout inflator object to inflate toast.xml file
        LayoutInflater inflater = getLayoutInflater();
          
        // Call toast.xml file for toast layout 
        View toastcreation = inflater.inflate(R.layout.toast, null);
          
        Toast toast = new Toast(context);
         
        // Set layout to toast 
        toast.setView(toastcreation );
       //how to set parameters programatically here??
        toast.setDuration(Toast.LENGTH_LONG);
        toast.show();

我需要使它居中水平并且垂直于cemter。 同样我使用toast.setDuration(Toast.LENGTH_LONG);,可以显示时间长度而不是使用Toast.LENGTH_LONG

2 个答案:

答案 0 :(得分:2)

使用这样的方法实现:

LayoutInflater inflater = activity.getLayoutInflater();
    View layout = inflater.inflate(R.layout.toast_layout, null);

    TextView text = (TextView) layout.findViewById(R.id.yourtext);
    text.setText(msg);

    Toast toast = new Toast(activity);
    toast.setGravity(Gravity.CENTER, 0, 40);
    toast.setDuration(Toast.LENGTH_LONG);
    toast.setView(layout);
    toast.show();

并使用此set time for toast.

您也可以从此处下载自定义Toast演示源代码:http://www.demoadda.com/demo/android/downlaod-demo-of-create-custom-toast-in-android-source-code_30

答案 1 :(得分:1)

要在中心设置吐司,您可以使用toast.setgravity方法。即使您指定了某个数量来代替length_long,它仍然需要默认的时间

而是定义一个处理程序,以便在指定的时间后处理程序将解除或取消Toast。

使用handler.postDelayed方法。

希望有所帮助。