【发布时间】:2011-09-03 23:15:40
【问题描述】:
我有一个要求,我需要根据用户提供的值更改应用程序字体大小。我怎样才能做到这一点?我用谷歌搜索过,但似乎只能从 XML 布局中完成。
【问题讨论】:
我有一个要求,我需要根据用户提供的值更改应用程序字体大小。我怎样才能做到这一点?我用谷歌搜索过,但似乎只能从 XML 布局中完成。
【问题讨论】:
在 values 目录下的 styles.xml 文件中定义样式并自定义您想要的任何内容。我正在使用 textSize 11sp
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:textColor">@color/textColorTitle</item>
<item name="android:textSize">11sp</item>
<item name="android:textColorSecondary">@color/colorAccent</item>
<item name="buttonStyle">@style/ButtonStyle</item>
</style>
在清单文件中适用于您的活动,例如
<activity
android:name=".view.activities.MainActivity"
android:label="@string/title_activity_main"
android:theme="@style/AppTheme" />
【讨论】:
您必须在值和此文件中创建文件styles.xml:
<resources>
<style>
<item name="android:textSize">20sp</item>
</style>
</resources>
【讨论】:
似乎我无法更改应用程序字体大小,我必须单独更改单个元素的字体大小。
【讨论】:
我能想到的唯一方法是扩展 TextView 并让它们检查每个 onDraw() 上的全局 textSize 变量。它不应该给绘图增加太多开销。
【讨论】:
你可以改变文本视图的文本大小
textview.setTextSize(int_value);
这是你的意思吗?
【讨论】:
在每个TextView(或从TextView 继承的其他小部件,例如Button)上调用setTextSize()。
【讨论】:
createConfigurationContext(),但我怀疑你会遇到问题。