如何计算和设置 TextView 的正确文本大小?

How do I calculate and set the correct textsize of a TextView?

我有一个 table,其中 header 行编码在 xml 文件中。我把里面TextView的TextSize属性设置为20dp。现在我想以相同的 textSize 以编程方式添加 textview,但是当我使用 tv.setTextSize(20) 时,它们变得更大了。 我试过 tv.setTextSize(20 / ((float) getResources().getDisplayMetrics().densityDpi / DisplayMetrics.DENSITY_DEFAULT)); 但那个方法太小了。正确的做法是什么?

您必须在 app/res/values/dimen.xml 文件夹

中以 dps 声明您的文本视图大小
<dimen name="text_size_20_dp">20dp</dimen>

Java:

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

科特林:

textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,
            resources.getDimension(R.dimen.text_size_20_dp))