如何在Android中自定义Toast?

时间:2011-07-03 09:11:44

标签: android toast

是否可以在Android中制作自定义Toast。好像我们可以在其中放置图像图标和放置按钮。

6 个答案:

答案 0 :(得分:2)

您还可以使用常规的makeText()并处理getView()以设置旁边的图像以查看下一个图像。

Toast toast = Toast.makeText(context, text, Toast.LENGTH_SHORT);
TextView tv = (TextView) toast.getView().findViewById(android.R.id.message);
if (null!=tv) {
    tv.setCompoundDrawablesWithIntrinsicBounds(icon, 0, 0, 0);
    tv.setCompoundDrawablePadding(context.getResources().getDimensionPixelSize(R.dimen.padding_toast));

答案 1 :(得分:1)

您可以使用setView将任何视图放入Toast中。 但是,我不太清楚你为什么要在其中放置一个按钮,因为Toast会迅速消失。摘自官方开发者网站:

  

当向用户显示视图时,   显示为浮动视图   应用。永远不会收到   焦点。用户可能会在   在输入别的东西的中间。   这个想法就像是一样不引人注目   可能,同时仍然显示用户   你希望他们看到的信息。

因此吐司应仅用于显示信息。对于更复杂的交互,您可以使用对话框。

答案 2 :(得分:1)

Toast是无法聚焦的。添加按钮没有意义。但是,您可以显示信息。您还可以控制其可见性,这意味着您可以隐藏和显示 通过在Toast类中进行少量更改。

答案 3 :(得分:1)

显然可以在android中创建自定义吐司。请查看我的博客.http://androiddesk.wordpress.com/2012/01/28/custom-notification-in-android-with-an-example/我已经详细解释了它。

答案 4 :(得分:0)

XML文件

enter code here`<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/toast_layout_root"
          android:orientation="horizontal"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:padding="8dp"
          android:background="#DAAA"
          >
<ImageView android:src="@drawable/droid"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_marginRight="8dp"
           />
<TextView android:id="@+id/text"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:textColor="#FFF"
          />

JAVA CODE

 LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.custom_toast,
                               (ViewGroup) findViewById(R.id.toast_layout_root));

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

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

答案 5 :(得分:0)

吐司可以定制,以显示在顶部,底部,中间,左,右等不同的地方

 toast.setGravity(Gravity.TOP , 0, 0); // for example setting gravity to top

了解更多详情[此处](http://androidcoding.in/2016/05/31/android-tutorial-custom-toast/&#34; android自定义吐司&#34;)