Toast是Android一开始就出现的,给人们一个提示作用,一般用于提示用户等信息,在Design风格Snackbar出现前,是一种常见的提示方式,现在还有许多程序在用这种提示方式,不过随着人们手机的普遍存在,审美观点的提高,很多人都感觉那个Toast太过于丑化了。所以才有现在的Toast化妆课,改变Toast的出现
简单的Toast的效果:
感觉背景黑色好难看呀,而且平白无故的在下方出现一个黑色的小方框确实挺别扭的,现在改变下背景色
代码如下:
Toast toast=Toast.makeText(MainActivity.this,"这是一个改变背景的Toast",Toast.LENGTH_LONG);
View view=toast.getView();
view.setBackgroundColor(Color.BLUE);
toast.setView(view);
toast.show();
感觉就算将背景改为蓝色,也显得比较突兀,所以有没有方法将背景改为透明色呢?
代码如下:
Toast toast=Toast.makeText(MainActivity.this,"这是一个改变背景的Toast",Toast.LENGTH_LONG);
View view=toast.getView();
view.setBackground(null);
view.setAlpha(1);
toast.setView(view);
toast.show();
setAlpha()可以根据自己的意愿来填写,随意更改数据。
背景是透明色了,关键文字也是白色呀,没有全部强调的效果,将字体颜色改为黑色
代码如下:
Toast toast=Toast.makeText(MainActivity.this,"这是一个改变字体颜色Toast",Toast.LENGTH_LONG);
LinearLayout view=(LinearLayout)toast.getView();
view.setBackground(null);
view.setAlpha(1);
TextView textView= (TextView) view.getChildAt(0);
textView.setTextColor(Color.BLACK);
toast.setView(view);
toast.show();
字体颜色满意了?想让Toast不在下面显示,那在哪里?
Toast toast=Toast.makeText(MainActivity.this,"这是一个改变背景的Toast",Toast.LENGTH_LONG);
LinearLayout view=(LinearLayout)toast.getView();
view.setBackground(null);
view.setAlpha(1);
TextView textView= (TextView) view.getChildAt(0);
textView.setTextColor(Color.BLACK);
toast.setGravity(Gravity.TOP,0,0);
toast.setView(view);
toast.show();
这里注意啦!注意啦!注意啦!,上方这个修改位置的setGravity是设置在Toast对象上的,其他的都是设置在Toast对象里面的View里面的。因为我只是简单的设置,如果这个效果不合你的心意,你可以设置第二个,第三个参数。
上面的化妆课还满意吗?不满意?在不同的手机上,Toast的风格也不一样,有的是圆角的背景边框,有的是直接的边框,我还希望Toast的内容更多一点,那应该怎么办呢?
代码如下:
Toast toast=Toast.makeText(MainActivity.this,"这是一个改变背景的Toast",Toast.LENGTH_LONG);
View view=LayoutInflater.from(MainActivity.this).inflate(R.layout.activity_item,null);
toast.setGravity(Gravity.CENTER,0,0);
toast.setView(view);
toast.show();
使用这种方式可以实现各种方式的适配。而且实现你想要的效果。