Android:自定义Toast通知继承默认Toast

时间:2011-12-31 05:02:22

标签: android android-layout toast

我有自定义Toast通知,其中包含图片和文字。自定义吐司工作正常,但我想知道如何使我的自定义吐司继承默认的吐司外观和感觉?我希望它看起来像是具有漂亮圆角和边框的默认值。

这就是我的自定义吐司的样子。

<?xml version="1.0" encoding="utf-8"?>
<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="10dp"
  android:background="#DAAA">
    <ImageView android:id="@+id/chatIcon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="10dp"
        android:src="@drawable/ic_chat"/>
    <TextView android:id="@+id/text"
        android:text="@string/unread_message_toast"
              android:layout_width="wrap_content"
              android:layout_height="fill_parent"
              android:textColor="#FFF"
              />
</LinearLayout>

4 个答案:

答案 0 :(得分:6)

我在我的某个应用中使用此功能。改变一些事情,它也适合你。

Toast ImageToast = new Toast(getBaseContext());
                LinearLayout toastLayout = new LinearLayout(
                        getBaseContext());
                toastLayout.setOrientation(LinearLayout.HORIZONTAL);
                ImageView image = new ImageView(getBaseContext());
                image.setImageResource(R.drawable.easter_egg);
                toastLayout.addView(image);
                ImageToast.setView(toastLayout);
                ImageToast.setDuration(Toast.LENGTH_SHORT);
                ImageToast.show();

答案 1 :(得分:1)

要获得带有漂亮圆角的默认背景(在棒棒糖上),请使用:

android:background="@android:drawable/toast_frame"

android:background="?android:attr/toastFrameBackground"

它会根据Android的版本提供Toast背景,如果你想要最新的我建议在..sdk \ platforms \ android下找到 toast_frame.9.png 文件 - [< strong>最新版本] \ data \ res \ drawable - [密度]

文字样式:

    android:textAppearance="@android:style/TextAppearance.Toast"
    android:textColor="@android:color/bright_foreground_dark"
    android:shadowColor="#BB000000"
    android:shadowRadius="2.75"

来源:https://github.com/android/platform_frameworks_base/blob/master/core/res/res/layout/transient_notification.xml

答案 2 :(得分:0)

试试这个

<style name="Themename" parent="android:Theme.dialog">

来自developer.android.com/guide/topics/ui/themes.html

答案 3 :(得分:0)

尝试以下代码。

从XML布局中扩充视图并将其命名为inflated_xml_view。

    Toast toastView = new Toast(this);
    toastView.setView(inflated_xml_view);
    toastView.setDuration(Toast.LENGTH_LONG);
    toastView.setGravity(Gravity.CENTER, 0,0);
    toastView.show();