Android Studio中的应用程序样式



我似乎找不到正确的解决方案来增加和减小整个Android应用程序的文本大小。我想给用户一个选项,以便用户可以更改用户的字体大小整个应用程序。我尝试将基础活动扩展到文本视图,但没有做到我希望这里有人可以帮助我的技巧。

您必须从设计选项卡中更新文本视图的 textSize.xml文件,您可以在res > layout上找到activity_main.xml文件。

如果要更改整个应用程序的大小,请尝试自定义主题并动态设置。

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="android:textSize">16sp</item>
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

<style name="AppTheme2" parent="Theme.AppCompat.Light.DarkActionBar">
            <!-- Customize your theme here. -->
            <item name="android:textSize">15sp</item>
            <item name="colorPrimary">@color/colorPrimary</item>
            <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
            <item name="colorAccent">@color/colorAccent</item>
        </style>
 <style name="AppTheme3" parent="Theme.AppCompat.Light.DarkActionBar">
            <!-- Customize your theme here. -->
            <item name="android:textSize">17sp</item>
            <item name="colorPrimary">@color/colorPrimary</item>
            <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
            <item name="colorAccent">@color/colorAccent</item>
        </style>

为不同尺寸创建单独的主题,并使用此类将其设置为。

public class themeUtils
{
    public static int cTheme;
    public static void changeToTheme(Activity activity, int theme)
    {
        cTheme = theme;
        activity.finish();
        activity.startActivity(new Intent(activity, activity.getClass()).addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION));
    }
    public static void onActivityCreateSetTheme(Activity activity)
    {
        try
        {
            activity.setTheme(cTheme);
        }
        catch (Exception e)
        {
            activity.setTheme(R.style.AppTheme); //default
        }
    }
}

在您的活动中,在super.oncreate((方法之前调用此方法,

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        themeUtils.onActivityCreateSetTheme(this);
        super.onCreate(savedInstanceState);
        ...}

最终在您想要的任何地方更改代码中的主题,

  themeUtils.changeToTheme(this, themeselected);//your theme name

最新更新