如何设置TextView的文本大小,以便无论是在平板电脑还是低分辨率手机上运行,它仍将始终占据相同的高度。我正在尝试:
public float adjustSP(float sp) {
Resources r = getActivity().getApplicationContext().getResources();
float density = r.getDisplayMetrics().density;
return sp / density;
}
然后,当我创建文本视图时:
TextView textView = new TextView(activity);
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 60.0f);
textView.setText(message.getMessage());
textView.setLayoutParams(new ScrollView.LayoutParams(ScrollView.LayoutParams.MATCH_PARENT, ScrollView.LayoutParams.WRAP_CONTENT));
但结果不一致,说实话,有点奇怪。在平板电脑上它是正确的大小 - 大约是屏幕的1/3,适用于适量的文本,但是在Nexus S模拟器上它是巨大的 - 每个屏幕基本上是1个字。
答案 0 :(得分:1)
对于文本视图,text-size从不使用“dp”,而是使用“sp”。 另外,对于不同的android设备使用dimens.xml也可以完成这项工作。
答案 1 :(得分:0)
请参阅Android supporting multiple screen 我还建议您不要硬编码UI元素的宽度/高度
答案 2 :(得分:0)
如果你想尝试一些例如autofittextview
的东西,有些图书馆会为你做这件事