【需求分析】
我们知道windows上调试程序输出变量可以通过MessageBox弹窗到屏幕上展示。在Android系统里通过Toast可以实现类似的弹窗效果。系统的Toast默认弹出到屏幕底部,且样式一般比较老旧。
这次的需求就是自定义Toast,可以规定Toast展示的位置以及Toast样式,具体来说包括三个方面:1. Toast位置自定义 2. Toast外部样式自定义 3. Toast颜色自定义
【动画效果】
对比系统自带和定制化Toast的展示效果
【实现方案】
自定义Toast的设计核心就是在系统Toast外边套一层View,将系统toast作为整个自定义Toast的一部分进行展示。具体来看通过系统Toast的setGravity设置Toast的显示位置。通过外面包裹的一层View对应的xml设置外层Toast的样式。
【代码展示】
首先是整个测试代码部分:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn1 = (Button) findViewById(R.id.btn_sys_toast);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {