Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Remove a Paint Flag in Android

My code looks like this:

    TextView task_text = (TextView) view.findViewById(R.id.task_text);     task_text.setPaintFlags( task_text.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); 

This causes a strike through effect to appear on the text. However, I'd like to know how to remove the flag once set, and how to detect that the flag is set.

I understand this is a bitwise operation, but I've tried both ~ and - operators, neither work.

like image 724
James Avatar asked Jul 22 '11 22:07

James


1 Answers

To remove a flag, this should work:

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

Which means set all the set flags, except of Paint.STRIKE_THRU_TEXT_FLAG.

To check if a flag is set (Edit: for a moment I forgot it is java...):

if ((task_text.getPaintFlags() & Paint.STRIKE_THRU_TEXT_FLAG) > 0) 
like image 116
MByD Avatar answered Oct 07 '22 00:10

MByD