彩色 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