本文概述
Android的默认Toast非常有用, 但是它们非常简单, 并且在使用它们几年后, 你甚至可能讨厌它们。对于每个人来说, 这就是为什么总是有替代Android本机组件的原因, 当你对默认组件感到厌倦时可以使用它们。如果你再次改变主意, 可以随时找回它们!对于Toast通知, 有一个漂亮的替代库, 名为DeliciousToast, 它将帮助你显示新的动画Toast, 从而使你的应用程序与其他应用程序有所不同。
在本文中, 我们将向你介绍如何在Android项目中安装和使用DeliciousToast库。
1.安装TastyToast
要在Android项目中安装TastyToast库, 请修改build.gradle文件并添加一个新的依赖关系, 即stastetoast一个:
dependencies {
implementation 'com.sdsmdg.tastytoast:tastytoast:0.1.1'
}
修改后, 同步项目并重新开始。有关此库的更多信息, 请访问Github上的官方存储库。
2.展示Toast
借助DeliciousToast, 你将能够显示6种类型的吐司, 即每种情况:
- 成功
- 警告
- 错误
- 信息
- default
- 混乱
你只需要在需要的类上导入名称空间, 并强制转换DeliciousToast类的静态makeText方法, 提供所需的参数即可:
import com.sdsmdg.tastytoast.TastyToast;
// 1. Success message
TastyToast.makeText(
getApplicationContext(), "Success message !", TastyToast.LENGTH_LONG, TastyToast.SUCCESS
);
// 2. Warning message
TastyToast.makeText(
getApplicationContext(), "Warning message !", TastyToast.LENGTH_LONG, TastyToast.WARNING
);
// 3. Error message
TastyToast.makeText(
getApplicationContext(), "Error message !", TastyToast.LENGTH_LONG, TastyToast.ERROR
);
// 4. Info message
TastyToast.makeText(
getApplicationContext(), "Info message !", TastyToast.LENGTH_LONG, TastyToast.INFO
);
// 5. Default message
TastyToast.makeText(
getApplicationContext(), "Default message !", TastyToast.LENGTH_LONG, TastyToast.DEFAULT
);
// 6. Confusion message
TastyToast.makeText(
getApplicationContext(), "Confusion message !", TastyToast.LENGTH_LONG, TastyToast.CONFUSING
);
完整的例子
在activity_main.xml文件中, 我们将具有以下布局, 该布局基本上包含6个按钮, 每个按钮都有一个标识符, 稍后将在代码中使用该标识符来附加onClick事件:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/successButton"
android:layout_width="wrap_content"
android:layout_height="49dp"
android:text="Success"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.049"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.023" />
<Button
android:id="@+id/warningButton"
android:layout_width="wrap_content"
android:layout_height="49dp"
android:text="Warning"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.95"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.023" />
<Button
android:id="@+id/errorButton"
android:layout_width="wrap_content"
android:layout_height="49dp"
android:text="Error"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.497"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.023" />
<Button
android:id="@+id/infoButton"
android:layout_width="wrap_content"
android:layout_height="49dp"
android:text="Information"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.054"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.143" />
<Button
android:id="@+id/defaultButton"
android:layout_width="wrap_content"
android:layout_height="49dp"
android:text="Default"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.551"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.143" />
<Button
android:id="@+id/confusionButton"
android:layout_width="wrap_content"
android:layout_height="49dp"
android:text="Confusion"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.95"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.143" />
</android.support.constraint.ConstraintLayout>
测试吐司的代码是:
package com.yourcompany.yourapp;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import com.sdsmdg.tastytoast.TastyToast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 1. Success message
Button buttonSuccess = findViewById(R.id.successButton);
buttonSuccess.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
TastyToast.makeText(
getApplicationContext(), "Success message !", TastyToast.LENGTH_LONG, TastyToast.SUCCESS
);
}
});
// 2. Warning message
Button buttonWarning = findViewById(R.id.warningButton);
buttonWarning.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
TastyToast.makeText(
getApplicationContext(), "Warning message !", TastyToast.LENGTH_LONG, TastyToast.WARNING
);
}
});
// 3. Error message
Button buttonDanger = findViewById(R.id.errorButton);
buttonDanger.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
TastyToast.makeText(
getApplicationContext(), "Error message ...", TastyToast.LENGTH_LONG, TastyToast.ERROR
);
}
});
// 4. Information message
Button buttonInfo = findViewById(R.id.infoButton);
buttonInfo.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
TastyToast.makeText(
getApplicationContext(), "Info message ...", TastyToast.LENGTH_LONG, TastyToast.INFO
);
}
});
// 5. Default message
Button buttonDefault = findViewById(R.id.defaultButton);
buttonDefault.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
TastyToast.makeText(
getApplicationContext(), "Default message ...", TastyToast.LENGTH_LONG, TastyToast.DEFAULT
);
}
});
// 6. Confusion message
Button buttonConfusion = findViewById(R.id.confusionButton);
buttonConfusion.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
TastyToast.makeText(
getApplicationContext(), "Confusion message ...", TastyToast.LENGTH_LONG, TastyToast.CONFUSING
);
}
});
}
}
编码愉快!