42

我正在使用下面的这一行来在我的 TextView 上设置删除线:

tv.setPaintFlags(tv.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);

但是稍后在片段中,如果他们再次单击 TextView,我希望删除删除线。我可以使用哪一行代码来简单地使 TextView 再次以正常格式显示文本?

提前致谢!

4

4 回答 4

91

我最终在网上找到了这个:

tv.setPaintFlags(tv.getPaintFlags() & (~ Paint.STRIKE_THRU_TEXT_FLAG));

这成功地删除了删除线,因此我在OnListItemClick检查我所做的数据库以查看该项目是否已被删除(在我的情况下购买)后在我的方法中调用了它。

于 2013-09-18T20:44:30.130 回答
22

另一种方法是简单地将值设置setPaintFlags为零。

tv.setPaintFlags(0) 

笔记:

这将删除您的文本和其他字体设计的删除线,如果它不适用于您的视图,您可以自由使用。

于 2014-09-25T06:33:12.627 回答
3

您可以在OnClickListener上设置一个TextView,重置绘制标志,并调用它invalidate(),以便它重新绘制自己。

于 2013-09-18T20:39:46.727 回答
1

设置 AntiAlias 帮助我使文本看起来不那么失真

科特林

tv.paintFlags = Paint.ANTI_ALIAS_FLAG
于 2019-03-12T06:19:25.823 回答