尝试以编程方式设置TextView文本大小

时间:2014-06-18 12:59:19

标签: android textview

我试图设置TextView的文本大小。

我使用的代码是我在一些地方看到过的

LayoutParams lp = new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
TextView title = new TextView(getContext());
title.setLayoutParams(lp);
title.setTextSize(TypedValue.COMPLEX_UNIT_SP, getContext().getResources().getDimension(R.dimen.small_font));
title.setText("Cannot find our servers");
addView(title);

small_font是12sp。

当我运行应用程序时,这就是它的样子(无法找到我们的服务器)

enter image description here

这对我来说当然不像12sp。如何获得它以使文本大小合适?

2 个答案:

答案 0 :(得分:1)

尝试以下代码: -

TextView text = new TextView(this);
text.setText("text");
text.setTextSize(12 * getResources().getDisplayMetrics().density);

tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12);
tv.setTextSize(TypedValue.COMPLEX_UNIT_DP, 12);
tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, 12);

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

答案 1 :(得分:1)

您使用的是缩放像素(COMPLEX_UNIT_SP)。这意味着文本在不同尺寸的scrrens上具有相同的大小。请尝试使用COMPLEX_UNIT_DP