实现Toast只需要两句话,第一是声明一个Toast,第二是显示这个Toast,如下:
Toast toast = Toast.makeText(ToastActivity.this, "带图片的Toast", Toast.LENGTH_LONG);toast.show();
makeText第一个参数是指对针对那个上下文的,这里是针对当前这个Activity的消息提示,第二个参数是要显示的文字,第三个参数显示的时间,过了这个时间后会消失。
接下来是在此基础之上加个图片,首先定义一个ImageView,然后Toast也有个View,需要对ImageView和Toast的View合并到一个Layout里面,然后替换掉Toast的View.具体如下:
//定义一个ImageViewImageView imageView = new ImageView(ToastActivity.this);imageView.setImageResource(R.drawable.icon);//获得Toast的ViewView toastView = toast.getView();//定义一个Layout,这里是LayoutLinearLayout linearLayout = new LinearLayout(ToastActivity.this);linearLayout.setOrientation(LinearLayout.HORIZONTAL);//将ImageView和ToastView合并到Layout中linearLayout.addView(imageView);linearLayout.addView(toastView);//替换掉原有的ToastViewtoast.setView(linearLayout);
贴个效果图:
具体实现步骤:
第一步:定义一个button用来点击后弹出消息提示
res/layout/toast_layout.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content"> <Button android:id="@+id/button" android:text="显示消息提示" android:layout_width="fill_parent" android:layout_height="wrap_content" /></LinearLayout>
第二步:
src/com/mytoast/activity/ToastActivity.java
//http://www.ligotop.compackage com.mytoast.activity;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.Toast;public class ToastActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.toast_layout); Button button = (Button) findViewById(R.id.button); View.OnClickListener listener = new View.OnClickListener() {@Overridepublic void onClick(View view) {//先定义一个ToastToast toast = Toast.makeText(ToastActivity.this, "带图片的Toast", Toast.LENGTH_LONG);//定义一个ImageViewImageView imageView = new ImageView(ToastActivity.this);imageView.setImageResource(R.drawable.icon);//获得Toast的ViewView toastView = toast.getView();//定义一个Layout,这里是LayoutLinearLayout linearLayout = new LinearLayout(ToastActivity.this);linearLayout.setOrientation(LinearLayout.HORIZONTAL);//将ImageView和ToastView合并到Layout中linearLayout.addView(imageView);linearLayout.addView(toastView);//替换掉原有的ToastViewtoast.setView(linearLayout);toast.show();}};button.setOnClickListener(listener); }}
因为这个很简单,所以源码不提供了,照着上面写就出来了。