最近做的項目,要求圖標的右上角能顯示未讀消息的數量,也就像微信的未讀消息一樣的效果。
沒有做過,之前一直這樣的效果好是申請,怎麼圖標的右上角會出現一個圓圈,然後圓圈裏面有數字呢。
只有經歷,才能懂得。
我使用過兩種方法,分別顯示效果,如下圖:
很明顯,下側那個圖標效果更美妙(請忽視紅色圓圈太大,其實是可以設置小點的,原諒我寫的教程太懶,麼麼噠~~)
上側的圖標效果,比較僵化,不容易修改。
下面分別介紹兩者實現原理
圖標1
這裏使用到知識點Bitmap、Canvas、Paint,可以說運用到了所有Android的畫圖知識。
首先,右上角的未讀消息是在已有的圖標基礎上畫出來的。 這種做法比較低級,換個角度講不適合運用到前文提到的效果。
圖標2
FrameLayout佈局,也就是圖片可以疊着,一張貼在一張上面。這樣的好處是,紅色背景,會隨數字位數大小而改變寬度。而圖標1的做法,改變數字位數大小,同時需要改變位置參數,很麻煩。
具體還是看代碼吧,資源我已經打包出來:點擊打開鏈接