小白开发程序之路(3-1)Toast

内容概述

Toast是一个消息提示组件
设置显示的位置
自定义显示内容
简单封装

小知识

根布局宽度高度设置不起效果,需要再套一个布局控件。比如LinearLayout里面再套一个LinearLayout。

代码

不同版本的Toast显示情况似乎不一样

ToastActivity.java

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.example.myapplication.util.ToastUtil;

import org.w3c.dom.Text;

public class ToastActivity extends AppCompatActivity {
    private Button mBtnToast1,mBtnToast2,mBtnToast3,mBtnToast4;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_toast);
        mBtnToast1=findViewById(R.id.btn_toast_1);
        mBtnToast2=findViewById(R.id.btn_toast_2);
        mBtnToast3=findViewById(R.id.btn_toast_3);
        mBtnToast4=findViewById(R.id.btn_toast_4);
        OnClick onClick=new OnClick();
        mBtnToast1.setOnClickListener(onClick);
        mBtnToast2.setOnClickListener(onClick);
        mBtnToast3.setOnClickListener(onClick);
        mBtnToast4.setOnClickListener(onClick);
    }
    class OnClick implements View.OnClickListener{
        @Override
        public void onClick(View view) {
            switch(view.getId()){
                case R.id.btn_toast_1:
                    Toast.makeText(ToastActivity.this,"Toast",Toast.LENGTH_SHORT).show();
                    //makeText返回的是一个Toast
                    break;
                case R.id.btn_toast_2:
                    Toast toastCenter=Toast.makeText(ToastActivity.this,"居中Toast",Toast.LENGTH_SHORT);
                    //注意这里先不需要show
                    toastCenter.setGravity(Gravity.CENTER,0,0);
                    toastCenter.show();
                    //我这里的居中Toast还是在默认位置...
                    break;
                case R.id.btn_toast_3:
                    Toast toastCustom=new Toast(getApplicationContext());
                    LayoutInflater inflater=LayoutInflater.from(ToastActivity.this);
                    View viewCustom = inflater.inflate(R.layout.layout_toast,null);
                    ImageView imageView=viewCustom.findViewById(R.id.iv_toast);
                    TextView textView=viewCustom.findViewById(R.id.tv_toast);
                    Glide.with(ToastActivity.this).load("https://imgsa.baidu.com/forum/w%3D580%3B/sign=6f952c5c77cb0a4685228b315b58f724/cb8065380cd79123f4bb5ad2a1345982b2b78039.jpg").into(imageView);
                    toastCustom.setView(viewCustom);
                    toastCustom.setDuration(Toast.LENGTH_LONG
                    );
                    toastCustom.show();
                    break;
                case R.id.btn_toast_4:
                    ToastUtil.showMsg(getApplicationContext(),"包装过的Toast");
                    break;
            }
        }
    }
}

ToastUtil.java

package com.example.myapplication.util;

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

public class ToastUtil {
    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.cancel();
            mtoast=Toast.makeText(context,msg,Toast.LENGTH_LONG);
        }

        mtoast.show();
    }
}

layout_toast.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:orientation="vertical">
    <LinearLayout
        android:layout_width="200dp"
        android:layout_height="200dp">
    <ImageView
        android:id="@+id/iv_toast"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleType="fitCenter"/>
    <TextView
        android:id="@+id/tv_toast"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="如果爱有颜色"
        android:textSize="18sp"
        android:textColor="@color/colorBlue"
        android:layout_marginTop="10dp"
        />
    </LinearLayout>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值