如何计算和设置 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))
我有一个 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
文件夹
<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))