Change font size at run time android

Viewed 5780

I have one textview and it has size as 32sp in xml.

android:textSize="32sp"

I wanted to change it as 28sp programmatically. So i used the below code.

txt.setTextSize(TypedValue.COMPLEX_UNIT_SP, getResources().getDimension(R.dimen.twenty_eight_sp));

But the above code is adding the 28sp to 32sp. So the font became too large. I don't want to add the font size, I want to set a new font size.

Can anyone suggest me.

4 Answers

You have to change it to TypedValue.COMPLEX_UNIT_PX because getDimension(id) returns a dimen value from resources and implicitly converted to px.

textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, 
           getResources().getDimension(R.dimen.result_font));
txt.setTextSize(TypedValue.COMPLEX_UNIT_SP,getResources().getDimension(R.dimen.twenty_eight_sp));

Try this

txt_home.setTextSize(12);
Related