【发布时间】: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