在Android上运行时更改字体大小

4

我有一个textview,在xml中它的大小是32sp

android:textSize="32sp"

我想以编程的方式将其更改为28sp。所以我使用了以下代码。

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

但是上面的代码将28sp添加到32sp中。因此,字体变得太大了。我不想添加字体大小,我想设置一个新的字体大小。

有人能给我建议吗?


使用TypedValue.COMPLEX_UNIT_PX代替TypedValue.COMPLEX_UNIT_SP。请参考此链接:https://dev59.com/oWUq5IYBdhLWcg3wYvd6?answertab=active#tab-top - nik
4个回答

8

你需要将其更改为TypedValue.COMPLEX_UNIT_PX,因为getDimension(id)返回资源中的dimen值,并隐式转换为px

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

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

1

试试这个

txt_home.setTextSize(12);

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接