【问题标题】:How to change font size of an app in android studio using seekbar如何使用 seekbar 在 android studio 中更改应用程序的字体大小
【发布时间】:2019-04-20 01:11:19
【问题描述】:

我正在尝试通过在我创建的设置活动中使用搜索栏来更改整个应用程序的字体。以下是我目前从网上获得的信息,但它只更改了 ID 为“changeFont”的少量文本:

// Fonts Scale Slider
fontScaleSlider = findViewById(R.id.fontScaleSlider);
view = findViewById(R.id.changeFont);

prefs = getPreferences(MODE_PRIVATE);

float fs = prefs.getFloat("fontsize", 10);
fontScaleSlider.setProgress((int)fs);
view.setTextSize(fontScaleSlider.getProgress());


fontScaleSlider.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {

    @Override
    public void onStopTrackingTouch(SeekBar fontScaleSlider){
        prefs = getPreferences(MODE_PRIVATE);
        SharedPreferences.Editor ed = prefs.edit();
        ed.putFloat("fontsize", view.getTextSize());
        ed.commit();
    }
    @Override
    public void onStartTrackingTouch(SeekBar fontScaleSlider) {

    }
    @Override
    public void onProgressChanged(SeekBar fontScaleSlider, int progress,
                                  boolean fromUser){
        view.setTextSize(progress);
        // Set text size of the whole app here
    }

还有 XML 文件:

<SeekBar
            android:id="@+id/fontScaleSlider"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_marginStart="13dp"
            android:layout_marginEnd="13dp"
            android:layout_marginBottom="82dp"
            android:max="30"
            app:layout_constraintBottom_toTopOf="@+id/logInButton"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/fontSliderLabel" />

【问题讨论】:

  • 您快到了,使用您保存的共享偏好。每次创建活动时读取首选项值,然后设置文本大小。
  • @deepakkumar,感谢您的评论...我保存的共享偏好到底是什么?我该怎么做呢?对不起,我是新手!

标签: java android android-studio fonts font-size


【解决方案1】:

在实现的方法onProgressChanged中,您可以将搜索栏值保存到共享首选项中。

@Override
public void onProgressChanged(SeekBar fontScaleSlider, int progress,boolean fromUser){
    SharedPreferences.Editor ed = prefs.edit();
    ed.putInt("fontSize", progress);
    ed.apply();
}

然后在activity启动时使用保存的值来设置每个文本的文本大小

int textSize = prefs.getInt("fontSize", defaultValue); // put your default value here like 16
textView.setTextSize(textSize);
//similarly set the textsize for other views

【讨论】:

    猜你喜欢
    • 2020-10-17
    • 2011-09-03
    • 2012-05-11
    • 1970-01-01
    • 2021-07-03
    • 1970-01-01
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    相关资源
    最近更新 更多