2016-07-07 51 views
2

在我的应用程序中,我需要保留一个操作来更改字体大小。我正在尝试保留三组文本大小(小,中,大)的值。我应该如何在它们之间切换?我的想法是一次使用一组字体资源。如何在android中使用不同的文本大小集?

更多的澄清:

在Theme.AppCompat.DayNight.DarkActionBar,对夜间模式之间切换和关闭在我可以调用

AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); 

AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES); 

在这里,每个人将使用不同的资源值设置开启和关闭夜间模式。我正在寻找一种在不同字体大小之间切换的方法。任何帮助表示赞赏。

回答

1

在操作系统中内置了类似的东西。如果你去设置>辅助功能你会发现一个大文本切换或滑块使文本更大(取决于手机)。只要您使用sp作为字体大小(例如android:textSize="16sp"),此功能就可以在您的应用中运行。

如果您打算使用该功能,则必须记住该设置位于手机设置中,我不认为您有任何方法可以将其从应用程序中更改。它适用于所有应用程序,而不仅限于您的应用程序,因此系统中的所有内容都会变得更大。这可能不是你所需要的。

否则,您可以尝试在您的应用程序中手动执行此操作。一种方法是创建三个具有不同字体大小的主题。然后,根据您在某处保存的设置(例如,在SharedPreference中),您可以在Activity.onCreate()的上下文中设置适当的主题。

但我不认为你可以在不同的资源子目录中保持不同的字体大小。 list of resource qualifiers是预定义的,我不认为有切换字体大小的东西。

+0

使用sharedpref它会让我每次都检查首选项。无论如何,如果没有其他选择,那么我会去那。谢谢。 –

相关问题