每个屏幕方向的不同文本大小?

时间:2013-02-02 23:42:31

标签: java android

我正在研究一个计算器,在风景上我正在添加更多按钮,因此每个按钮都会变得更小以适应额外的按钮。

此时我只是使用较小的字体大小,因此它们适合横向模式中较小的按钮,但是我希望在纵向上比在平面尺度上有更大的文本。

我一直试图找出一种根据屏幕方向使用不同主题的简单方法,但我还没有找到一种简单的方法。为横向样式/values-land/style.xml创建不同的文件夹不起作用,因为主题仅在重新启动应用程序时应用。

如何根据屏幕方向使用不同的字体大小/主题?

1 个答案:

答案 0 :(得分:4)

我建议使用为纵向和横向定义字体大小的目录。例如:

values/dimen.xml
values-land/dimen.xml

在每个dimen.xml文件中,您将为按钮定义字体大小。

values/dimen.xml:
    <dimen name="button_fontSize">12sp</dimen>

values-land/dimen.xml
    <dimen name="button_fontSize">24sp</dimen>

启动活动或旋转设备时,xml布局将获取适合当前方向的字体大小。

编辑:为了回应您使用android:configChanges来捕获计算器显示,我想提供一个更容易实现并简化编码的替代方案。

在下面的示例中,我假设您的计算屏幕包含名为TextView的{​​{1}}。

calcDisplay

使用此代码,设备不仅会在旋转时自动恢复计算器显示文本,但由于活动被销毁并重新创建,因此也会加载所需的字体大小。