彩色 Toast 消息

有时我们想用颜色向用户提供额外的信息(例如红色意味着发生了错误)我们可以使用颜色过滤器设置颜色过滤器来改变我们的吐司给我们的视图(这里我使用 ColorMatrixColorFilter ):

Toast t = Toast.MakeText(context, message, duration);
Color c = */your color/*;
ColorMatrixColorFilter CM = new ColorMatrixColorFilter(new float[]
    {
        0,0,0,0,c.R,
        0,0,0,0,c.G,
        0,0,0,0,c.B,
        0,0,0,1,0            
    });
t.View.Background.SetColorFilter(CM);
t.Show();

如果背景是浅色或深色,我们也可以更改文字颜色:

if ((((float)(c.R) + (float)(c.G) + (float)(c.B)) / 3) >= 128)
    t.View.FindViewById<TextView>(Android.Resource.Id.Message).SetTextColor(Color.Black);
else
//text color is white by default