gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 16:43:05 28 4
gpt4 key购买 nike

我正在开发一个计算器,在横向上我正在添加更多按钮,因此每个按钮都会变小一点以适应额外的按钮。

在这一点上,我只是使用较小的字体大小,以便它们在横向模式下适合较小的按钮,但是我希望纵向文本比横向文本更大。

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

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

最佳答案

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

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>

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

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

在下面的示例中,我假设您的计算屏幕包含一个名为 calcDisplayTextView

protected void onSaveInstanceState(Bundle outState) {
// Save the calculator display text.
outState.putString("displayText", calcDisplay.getText());
}

protected void onCreate(Bundle savedInstanceState) {

// ...

// Restore the calculator display text.
if (savedInstanceState != null) {
String displayText = savedInstanceState.getString("displayText");
calcDisplay.setText(displayText);
}
}

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

关于java - 每个屏幕方向的文本大小不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14667779/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com