Android学习笔记---第二天---基础UI组件---Toast

来源:互联网 发布:丑陋的中国人知乎 编辑:程序博客网 时间:2024/04/20 03:05

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对象;    }

方法二获取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再进行显示。

0 0
原创粉丝点击