[英]How to change font size of an app in android studio using seekbar
我正在尝试通过在创建的设置活动中使用搜索栏来更改整个应用程序的字体。 以下是到目前为止我从网上获得的内容,但是它仅更改了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" />
在已实现的方法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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.