一、TextView 設置刪除線有兩種方式:
(推薦)方式一:
通過按位或運算符|,將 TextView 原本的 Flags 屬性和刪除線一塊設置。setPaintFlags內會對 TextView 進行重繪。
tv.setPaintFlags(tv.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
方式二:
獲取畫筆后設置屬性,重繪 TextView 。此方式有個問題,會把 TextView 原本的 Flags 屬性替代,例如抗鋸齒等。仔細查看,你會發(fā)現(xiàn)通過這種方式,文字有了鋸齒。
tv.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);tv.invalidate();
二、TextView 取消刪除線有兩種方式:
(推薦)方式一:
先對 Paint.STRIKE_THRU_TEXT_FLAG 屬性取反,再用按位與運算符&,除去了刪除線屬性并保留了 TextView 原本的 Flags 屬性。setPaintFlags內會對 TextView 進行重繪。
tv.setPaintFlags(tv.getPaintFlags() & (~Paint.STRIKE_THRU_TEXT_FLAG));
方式二:
獲取畫筆后,清空 Flags 屬性,再重繪 TextView 。此方式有個問題,會把 TextView 原本的所有 Flags 屬性清空,例如抗鋸齒等。仔細查看,你會發(fā)現(xiàn)通過這種方式,文字有了鋸齒;
tv.getPaint().setFlags(0);tv.invalidate();
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答