Как изменить размер шрифта приложения в Android Studio, используя seekbar - PullRequest
0 голосов
/ 16 ноября 2018

Я пытаюсь изменить шрифт всего приложения, используя панель поиска в созданном мною задании. Ниже приведено то, что я получил от онлайн до сих пор, но он изменяет только небольшой объем текста с идентификатором "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" />

1 Ответ

0 голосов
/ 17 ноября 2018

В реализованном методе onProgressChanged вы можете сохранить значение панели поиска в общих настройках.

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

А затем используйте сохраненное значение, чтобы установить размер текста каждого текста, когда начинается действие

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