我有自定义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>
答案 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"
答案 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();