Toast 类通常用于显示一些快速提示信息,应用范围非常广泛。下面将对 Toast 类进行详细介绍。应用 Toast 类
在屏幕中显示的消息提示框具有如下几个特点:
- 没有任何控制按钮。
- 不会获得焦点。
- 经过一段时间后会自动消失。
使用 Toast 类来显示消息提示框比较简单,一般一条语句就可以实现:
Toast.makeText(getApplicationContext(),"提示内容",Toast.LENGTH_SHORT).show();
但是随着我们学习的深入,系统自带的样式已经满足不了我们的需求了,这时我们就需要直接来设计提示框的样式。
下面将简单介绍一下Toast自定义样式如何实现的。
实现自定义Toast有两步较关键。
第一步:设计自定义布局layout
第二步:对Toast类的以下参数进行设置。
这里贴出一个简单的代码:
toast_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:id="@+id/toast_view"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/img_toast"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/icon_tip" />
<TextView
android:id="@+id/tv_toast"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="这是一个自定义的Toast"
android:textSize="30sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/img_toast" />
</androidx.constraintlayout.widget.ConstraintLayout>
ToastUtils.java
package com.example.mydemo;
import android.content.Context;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
public class ToastUtils{
private static Toast toast = null;
public static void showToast(@NonNull Context context,
@NonNull LayoutInflater inflater,
@NonNull int layout) {
if (toast == null){
//填充自定义视图
View vToast = inflater.inflate(layout,null);
toast = new Toast(context);
//设置自定义视图
toast.setView(vToast);
//设置持续时间(Toast.LENGTH_SHORT或者Toast.LENGTH_LONG)
toast.setDuration(Toast.LENGTH_SHORT);
//设置位置
toast.setGravity(Gravity.CENTER,0,0);
}
//显示toast
toast.show();
}
}
这样我们就可以愉快的使用自己设置的Toast提示样式了。
ToastCustomActivity.java
package com.example.mydemo;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Toast;
public class ToastCustomActivity extends AppCompatActivity {
private int num = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_toast_custom);
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
num++;
ToastUtils.showToast(getApplicationContext(),getLayoutInflater(),R.layout.toast_layout,
"新的提示内容"+num,R.drawable.icon_tip);
}
});
}
}
链接:百度网盘下载 提取码:43v6