I use setTypeface
to set a text bold (or italics, or other of the typeface attributes)
TextView tv = findViewById(R.id.label);
...
tv.setTypeface(null,Typeface.BOLD);
...
How do I remove only the bold attribute, without changing other attributes that might have been set so far?
style. StyleSpan(Typeface. BOLD), start, end, Spannable.
On your device, open the Settings app. Display size and text. Turn Bold text on or off.
Change Text Style of TextView to BOLD in XML Layout File textStyle attribute of TextView widget accepts on of these values: "bold" , "italic" or "normal" . To change the style to bold, you have to assign textStyle with "bold" .
Double tap the text you want to format. Tap Format, then choose a formatting option like bolding, italics, or changing the font color.
tv.setTypeface(null,Typeface.NORMAL);
This would set the style back to normal without changing color or size.
But you can't mix bold/italic/underline text this way. If you specify BOLD, all of the text will be bold. If you want to mix the style of the text I suggest using HTML to style the text, and then use the following code.
tv.setText(Html.fromHtml(yourStringAsHtml));
just create a new Typeface can make bold
back to normal
tv.setTypeface(Typeface.create(tv.getTypeface(), Typeface.NORMAL), Typeface.NORMAL);
tv.invalidate();
this chunk of code removed the old Typeface setTypeface(null,Typeface.NORMAL);
For keeping the old you should call
setTextViewStyle(textView, isBold);
private void setTextViewStyle(TextView view, boolean isBold){
if (view == null)
return;
// if old typeface is null create new Typeface bold or def
Typeface oldTypeface = view.getTypeface() != null ? view.getTypeface() :
(isBold ? Typeface.DEFAULT_BOLD : Typeface.DEFAULT);
view.setTypeface(
Typeface.create(oldTypeface, isBold ? Typeface.BOLD : Typeface.NORMAL)
);
}
like me, if you want to preserve the custom font you have set to the TextView and just remove BOLD attribute, you can try
tv.getPaint().setFakeBoldText(false)
Doing following removed the custom font I had set to the TextView.
tv.setTypeface(null,Typeface.NORMAL);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With