我希望有一个设置活动,用户可以在其中更改整个应用程序的文本字体大小...我也只有一个文本视图,这使得工作变得简单,但我无法理解独自出去。
例如,我有一个显示文本的活动,它被称为(Contentactivity)
然后会有另一个名为(Settingactivity)的活动,用户可以在此处更改Contentactivity文本的字体大小。
我希望它清楚,非常感谢你的帮助。
答案 0 :(得分:1)
我是这样做的:
为每个想要的文字大小创建一个样式:
<style name="RegularSizedText">
<item name="text_size">20sp</item>
</style>
<style name="LargeSizedText">
<item name="text_size">35sp</item>
</style>
R.style.RegularSizedText
&lt; =&gt; 0,R.style.LargeSizedText
&lt; =&gt; 1 ...) - 您必须以后不要更改它或者在更新应用时会破坏设置,你只能附加参数但不能删除/插入任何onCreate
方法中:
getTheme().applyStyle(myStyle, false);
其中myStyle是与存储参数对应的样式ID(因此,如果用户选择字体参数#0,则为R.style.RegularSizedText
)您必须永远不要直接存储样式ID,因为更新应用时它会被破坏(Android R ID从构建到另一个不同)。
答案 1 :(得分:0)
设置尺寸时,只需使用sp
代替dp
。这样可以保证您的文字始终在设置中根据屏幕尺寸和用户的偏好进行调整。
查看此SO Answer了解更多详情。
答案 2 :(得分:0)
您可以使用以下代码更改系统字体
Settings.System.putFloat(getBaseContext().getContentResolver(),
Settings.System.FONT_SCALE, (float) 1.0);
之后在menifest文件中给予权限
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>