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

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();//显示对象;
    }

效果图

Android学习笔记---第二天---基础UI组件---Toast_第1张图片

附加

Toast还能以完全自定义和其他线程的方式显示;

完全自定义需要使用LayoutInflater类将自定义xml转换为View再进行显示。

你可能感兴趣的:(android)