Toast可以显示文本和图片,用于显示提示信息。
Toast.makeText(getApplicationContext(),"Welecome",Toast.LENGTH_SHORT).show();
这个静态函数会返回一个包含一个文本视图的Toast对象,他有三个参数
1.第一个参数当前上下文环境可以使用getApplicationContext()//应用程序的上下文;或者this//当前对象上下文;
2.第二个参数需要显示的文本内容;
3.第三个参数需要显示的时间长短有两个常量可以选择Toast.LENGTH_SHORT和Toast.LENGTH_LONG;
public void viewImg(View v){ Toast toast=new Toast(this);//使用Toast的构造函数创建一个新的Toast对象,参数为当前上下文环境; ImageView imageView=new ImageView(this);//新建一个ImageView对象,用于显示图片; imageView.setImageResource(R.drawable.bz);//给imageView对象指定一个图片; //注意在存放资源时图片名称全部小写只能字母打头; toast.setView(imageView);//setView函数用来设置视图,这里我们将刚才新建的imageView对象作为参数; toast.setDuration(Toast.LENGTH_LONG);//该函数用于设置显示的时间长短,同样的有两个常量可以选择; toast.show();//显示视图函数; }
自定义显示位置需要使用setGravity(int gravity, int xOffset, int yOffset)函数;
该函数有三个参数:
1.第一个参数设置显示位置使用Gravity类里面的常量如Gravity.CENTER//居中显示;
2.第二个参数x轴的偏移量;
3.第三个参数y轴的偏移量;
public void viewImg(View v){ Toast toast=new Toast(this);//使用Toast的构造函数创建一个新的Toast对象,参数为当前上下文环境; ImageView imageView=new ImageView(this);//新建一个ImageView对象,用于显示图片; imageView.setImageResource(R.drawable.bz);//给imageView对象指定一个图片; //注意在存放资源时图片名称全部小写只能字母打头; toast.setView(imageView);//setView函数用来设置视图,这里我们将刚才新建的imageView对象作为参数; toast.setDuration(Toast.LENGTH_LONG);//该函数用于设置显示的时间长短,同样的有两个常量可以选择; toast.setGravity(Gravity.TOP,0,0);//设置显示位置为顶部; toast.show();//显示视图函数; }
有两种方法可以直接新建一个布局放到Toast里面也可以获取到Toast的布局再添加一个图片进去;
public void viewImgText(View v){ Toast toast=new Toast(this); TextView textView=new TextView(this);//新建一个文本对象; textView.setText("Welcome");//设置文本内容; ImageView imageView=new ImageView(this); imageView.setImageResource(R.drawable.bz); LinearLayout layout=new LinearLayout(this);//新建一个线性布局; layout.setOrientation(LinearLayout.VERTICAL);//设置为垂直; layout.setGravity(Gravity.CENTER);//设置该布局中内容显示的位置; layout.addView(imageView);//将图片添加到线性布局中; layout.addView(textView);//将文本添加到线性布局中; toast.setView(layout);//设置要显示的视图为线性布局; toast.setGravity(Gravity.CENTER, 0, 0);//设置显示位置 toast.setDuration(Toast.LENGTH_LONG);//设置显示时间 toast.show();//显示Toast对象; }
public void viewImgText(View v){ Toast toast=Toast.makeText(getApplicationContext(), "Welecome", Toast.LENGTH_LONG); ImageView imageView=new ImageView(this); imageView.setImageResource(R.drawable.bz); LinearLayout layout=(LinearLayout)toast.getView();//获取Toast的布局; layout.setOrientation(LinearLayout.VERTICAL);//设置布局为垂直; layout.addView(imageView);//将图片添加到布局中 toast.setGravity(Gravity.CENTER, 0, 0);//设置显示位置; toast.show();//显示对象; }
Toast还能以完全自定义和其他线程的方式显示;
完全自定义需要使用LayoutInflater类将自定义xml转换为View再进行显示。