余老师带你学习智能终端-Android App开发第三章第一节Toast

本文详细介绍了Android中Toast的使用,包括默认显示、自定义位置和内容,以及如何实现图片和文本结合的自定义Toast。同时,展示了如何避免连续点击导致的连续显示问题,提供了一个简单的ToastUntil类来实现单次显示。此外,还演示了如何通过设置Gravity实现Toast居中显示,并通过自定义布局文件activity_toast.xml创建包含图片和文本的复杂提示。
摘要由CSDN通过智能技术生成

Toast

概述

在这里插入图片描述

学习第三章还是UI组件,是UI组件中的弹出组件,把它拎出来单独给大家讲解。首先,来学习Toast,在之前的学习中也用到了Toast,在屏幕的下方出现一个提示信息,在一秒钟或者两秒钟消失。现在就详细的讲解一下Toast的使用方法,Toast是一个消息提示组件;设置显示的位置,之前使用的是默认的位置,当然我们可以自定义设置在屏幕中的哪个位置显示;自定义显示内容,之前是显示了一个文本,这也是我们最为常用的,那假设我们显示一个图片加文本要如何做到,也是我们今天要讲的内容;最后是Toast的一个简单封装,这里的封装只是一个入门级的,希望在以后可以找到更适合自己的封装方法。

演示

1、先将基本框架写好,activity_main.xml使用的是线性布局管理器,先列出三个button组件,分别做默认、改变位置、带图片(自定义)的演示;HelloAndroidActivity.java中先声明,在findViewById找到相对应的Button,使用Switch循环语句,在做演示的时候就可以直接在switch中添加
activity_main.xml:

android:orientation="vertical"
<Button 
        android:id="@+id/btn_toast_1"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:text="默认"/>

    <Button 
        android:id="@+id/btn_toast_2"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:text="改变位置"/>
    
    <Button 
        android:id="@+id/btn_toast_3"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:text="带图片(自定义)"/>

HelloAndroidActivity.java:

private Button mbtnToast1;
    private Button mbtnToast2;
private Button mbtnToast3;
mbtnToast1 =(Button) findViewById(R.id.btn_toast_1);
        mbtnToast2 =(Button) findViewById(R.id.btn_toast_2);
        mbtnToast3 =(Button) findViewById(R.id.btn_toast_3);

        OnClick OnClick = new OnClick();
        mbtnToast1.setOnClickListener(OnClick);
        mbtnToast2.setOnClickListener(OnClick);
        mbtnToast3.setOnClickListener(OnClick);

class OnClick implements View.OnClickListener{
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            switch(v.getId())
            {
                case R.id.btn_toast_1:
                
                break;
                case R.id.btn_toast_2:

                break;
                case R.id.btn_toast_3:
                break;
            }
            
        }
    }

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、默认Toast

Toast.makeText(getApplicationContext(), "默认", Toast.LENGTH_LONG).show();

在这里插入图片描述
在这里插入图片描述

3、Toast显示的位置居中,makeText的返回值是Toast,定义一个toastCenter,给toastCenter设置setGravity,最后调用show方法
HelloAndroidActivity.java:

Toast toastCenter = Toast.makeText(getApplicationContext(), "Toast居中", Toast.LENGTH_LONG);
toastCenter.setGravity(Gravity.CENTER, 0 ,0);
toastCenter.show();
 

在这里插入图片描述
在这里插入图片描述

4、自定义效果带图片, 先将准备好的图片上传到drawable-xxhdpi,创建一个activity_toast.xml自定义效果,分为两部分,图片和文字;在HelloAndroidActivity.java中先定义一个Toast,创建视图,视图通过LayoutInflater,view中有ImageView和TextView,分别找到并设置图片和文字
activity_toast.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    android:background="#99000000" //黑色带透明度的,后六位是颜色,前两位是透明度
    android:gravity="center" //居中显示>

    <ImageView
        android:id="@+id/iv_toast"
        android:layout_height="100dp"
        android:layout_width="100dp"
        android:scaleType="fitCenter"/>

    <TextView 
        android:id="@+id/tv_toast"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="18sp"
        android:textColor="#FFFFFF"
        android:layout_marginTop="10dp"/>

</LinearLayout>

HelloAndroidActivity.java:

    Toast toastCustom = new Toast(getApplicationContext());
    LayoutInflater inflater = LayoutInflater.from(HelloAndroidActivity.this);
    View view = inflater.inflate(R.layout.activity_toast,null);
    ImageView imageView = (ImageView)view.findViewById(R.id.iv_toast);
    TextView textView = (TextView)view.findViewById(R.id.tv_toast);
    imageView.setImageResource(R.drawable.src);
    textView.setText("自定义Toast");
    toastCustom.setView(view);
    toastCustom.show();

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

5、如果连续按同一个按钮,Toast显示是连续的排队状态,等第一个显示完了,第二个才开始显示,在实际开发中是需要后一个将前面的抵消掉,不管点多少下,都以最后一下为准,而不是一直在等,那如何来做呐?
首先封装一个简单的类,创建一个until包,在包下创建ToastUntil.java,在添加一个Button组件,运行之后,连续点十几次按钮不会等20几秒的
ToastUntil.java:

package com.kinginsai.template.android.until;

import android.content.Context;
import android.widget.Toast;

public class ToastUntil{
    public static Toast mToast;
    public static void showMsg(Context context,String msg){
        if(mToast == null){
            mToast = Toast.makeText(context,msg,Toast.LENGTH_LONG);
        }else{
            mToast.setText(msg);
        }
        mToast.show();
    }
}

activity_main.xml:

<Button 
        android:id="@+id/btn_toast_4"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:text="ToastUntil"/>

HelloAndroidActivity.java:

private Button mbtnToast4;
mbtnToast4 =(Button) findViewById(R.id.btn_toast_4);
mbtnToast4.setOnClickListener(OnClick);
case R.id.btn_toast_4:
                ToastUntil.showMsg(getApplicationContext(), "包装过的Toast");
                break;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值