Android_(消息提示)多种使用Toast的消息提示

 

Toast是一种提供给用户简介信息的视图,可以创建和显示消息,该视图以浮于应用程序之上的形式呈现给用户。因为它并不获得焦点,即使用户正在输入什么也不会受到影响

 

Toast目标是尽可能以不显眼的方式,使用户看到提示的信息。

 

运行截图:

 

程序结构

 

 

 

 

package com.example.asus.gary_74;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    private Button bt1,bt2,bt3,bt4;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bt1=(Button)findViewById(R.id.button);
        bt1.setOnClickListener(new Button.OnClickListener()
        {

            @Override
            public void onClick(View v) {
                //Toast.LENGTH_SHORT 大约2秒
                //Toast.LENGTH_LONG  大约3.5秒
                Toast toast = Toast.makeText(MainActivity.this,"默认的Toast",Toast.LENGTH_LONG);
                toast.show();
            }
        });

        bt2=(Button)findViewById(R.id.button2);
        bt2.setOnClickListener(new Button.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast toast=Toast.makeText(getApplicationContext(), "自定义显示位置的Toast", Toast.LENGTH_SHORT);
                //第一个参数:设置toast在屏幕中显示的位置。我现在的设置是居中靠顶
                //第二个参数:相对于第一个参数设置toast位置的横向X轴的偏移量,正数向右偏移,负数向左偏移
                 //第三个参数:同的第二个参数道理一样
                 //如果你设置的偏移量超过了屏幕的范围,toast将在屏幕内靠近超出的那个边界显示
                 toast.setGravity(Gravity.TOP|Gravity.CENTER, -50, 100);
                 //屏幕居中显示,X轴和Y轴偏移量都是0
                //toast.setGravity(Gravity.CENTER, 0, 0);
                toast.show();
            }
        });

        bt3=(Button)findViewById(R.id.button3);
        bt3.setOnClickListener(new Button.OnClickListener(){

            @Override
            public void onClick(View v) {
                Toast toast=Toast.makeText(getApplicationContext(), "显示带图片的toast",Toast.LENGTH_LONG);
                 toast.setGravity(Gravity.CENTER, 0, 0);
                 //创建图片视图对象
                 ImageView imageView= new ImageView(getApplicationContext());
                 //设置图片
                 imageView.setImageResource(android.R.drawable.ic_input_add);
                 //获得toast的布局
                 LinearLayout toastView = (LinearLayout) toast.getView();
                 //设置此布局为横向的
                 toastView.setOrientation(LinearLayout.HORIZONTAL);
                 //将ImageView在加入到此布局中的第一个位置
                 toastView.addView(imageView, 0);
                 toast.show();
            }
        });

    }
}
MainActivity

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.asus.gary_74.MainActivity">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Gary_Toast!"
        android:textSize="40px" />

    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="默认显示" />


    <Button
        android:id="@+id/button2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="自定义位置显示" />

    <Button
        android:id="@+id/button3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="带图片显示" />

</LinearLayout>
activity_main.xml

 

一、界面布局

  三个Button,分别显示不同的Toast提示效果

 

二、实现程序功能

1、显示默认的Toast消息

Toast makeText(Context context,int resId,int duration)

   context:使用的上下文,通常是Activity对象

resId:要使用的字符串资源ID

duration:该消息的在屏幕上停留的时间。值为LENGTH_SHORT或者LENGTH_LONG
  bt1=(Button)findViewById(R.id.button);
        bt1.setOnClickListener(new Button.OnClickListener()
        {

            @Override
            public void onClick(View v) {
                //Toast.LENGTH_SHORT 大约2秒
                //Toast.LENGTH_LONG  大约3.5秒
                Toast toast = Toast.makeText(MainActivity.this,"默认的Toast",Toast.LENGTH_LONG);
                toast.show();
            }
        });

 

2、自定义位置显示Toast消息

void setDuration(int gravity,int xOffset,int yOfset)
设置提示消息在屏幕上显示的位置
        bt2=(Button)findViewById(R.id.button2);
        bt2.setOnClickListener(new Button.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast toast=Toast.makeText(getApplicationContext(), "自定义显示位置的Toast", Toast.LENGTH_SHORT);
                //第一个参数:设置toast在屏幕中显示的位置。我现在的设置是居中靠顶
                //第二个参数:相对于第一个参数设置toast位置的横向X轴的偏移量,正数向右偏移,负数向左偏移
                 //第三个参数:同的第二个参数道理一样
                 //如果你设置的偏移量超过了屏幕的范围,toast将在屏幕内靠近超出的那个边界显示
                 toast.setGravity(Gravity.TOP|Gravity.CENTER, -50, 100);
                 //屏幕居中显示,X轴和Y轴偏移量都是0
                //toast.setGravity(Gravity.CENTER, 0, 0);
                toast.show();
            }
        });

 

3、显示带图片的Toast消息

bt3=(Button)findViewById(R.id.button3);
        bt3.setOnClickListener(new Button.OnClickListener(){

            @Override
            public void onClick(View v) {
                Toast toast=Toast.makeText(getApplicationContext(), "显示带图片的toast",Toast.LENGTH_LONG);
                 toast.setGravity(Gravity.CENTER, 0, 0);
                 //创建图片视图对象
                 ImageView imageView= new ImageView(getApplicationContext());
                 //设置图片
                 imageView.setImageResource(android.R.drawable.ic_input_add);
                 //获得toast的布局
                 LinearLayout toastView = (LinearLayout) toast.getView();
                 //设置此布局为横向的
                 toastView.setOrientation(LinearLayout.HORIZONTAL);
                 //将ImageView在加入到此布局中的第一个位置
                 toastView.addView(imageView, 0);
                 toast.show();
            }
        });

 

传送门:消息模式Toast.make Text的几种常见用法

posted @ 2018-05-31 00:47  Cynical丶Gary  阅读(484)  评论(0编辑  收藏  举报