我试图设置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。
当我运行应用程序时,这就是它的样子(无法找到我们的服务器)
这对我来说当然不像12sp。如何获得它以使文本大小合适?
答案 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
。