在Android系统中,消息提醒有Notification通知栏消息提醒,Dialog对话框消息提示,还有一种就是Toast消息通知。
其中Toast消息通知,它是不获取焦点,不接受触摸事件,透明的短时间的友好提示,如网络超时,编写短信保存到草稿箱等等。
首先我们要使用Toast提示消息
Context context = getApplicationContext();
CharSequence text = "Hello toast!";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
我们还可以指定显示消息的位置
toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);
上面说的都是系统默认风格的Toast,如何制作我们自己的Toast呢
那么第一步就是设计我们自己的布局展示,custom_toast.xml
<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"
/>
</LinearLayout>
看API我们看到有Toast类中有setView(View view);这个方法,它就是来自定义View,显示消息的
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.custom_toast, null);
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();
这样就完成我们自己风格的Toast消息展示,当然上面的布局是很简单的,大家在自定义的时候可以加入不同的控件,来实现想要的效果