java - 只有阿拉伯语文本改变大小,而不是字符串上的其他文本
问题描述
我尝试使用 sharedpreferences 来保存值。我使用 seekbar 来更改字体大小的值。sharedpreferences 效果很好,也可以根据我的需要改变字体大小。但是,只有阿拉伯语文本发生了变化,而翻译没有变化。我从字符串资源中调用的文本。
这是代码。
public class fontsize extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener{
//textsize
int textSize = 30;
//textView
TextView textViewFont, textViewSize;
//SharedPreferences
SharedPreferences sharedPreferences;
SharedPreferences.Editor editor;
//variablesmenudrawer
DrawerLayout drawerLayout;
NavigationView navigationView;
Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fontsize);
sharedPreferences = getSharedPreferences("fontsize", MODE_PRIVATE);
editor = sharedPreferences.edit();
int progress = sharedPreferences.getInt("progress", 0);
//definingtextview
textViewFont = findViewById(R.id.textViewFont);
textViewSize = findViewById(R.id.textViewSize);
//seekbar
SeekBar seekBar = findViewById(R.id.seekbar);
seekBar.setProgress(progress);
textViewFont.setTextSize(textSize+seekBar.getProgress()); // size 30sp
textViewSize.setText(seekBar.getProgress() + "/" + seekBar.getMax()); // 0/30
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
int progressNew = 0;
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
textSize = textSize + (progress - progressNew);
progressNew = progress;
textViewFont.setTextSize(textSize);
editor.putInt("progress", progress);
editor.apply();
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
textViewSize.setText(seekBar.getProgress() + "/" + seekBar.getMax()); // 0/30
}
});
//definingmenudrawer
drawerLayout = findViewById(R.id.drawer_layout4);
navigationView = findViewById(R.id.nav_view4);
toolbar = findViewById(R.id.toolbar4);
//toolbar
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
//toolbar.setNavigationIcon(R.drawable.ic_toolbar);
toolbar.setTitle("");
toolbar.setSubtitle("");
//toolbar.setLogo(R.drawable.ic_toolbar);
toolbar.setNavigationIcon(R.drawable.ic_baseline_dehaze_24);
//navdrawermenu
navigationView.bringToFront();
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawerLayout.addDrawerListener(toggle);
toggle.syncState();
navigationView.setNavigationItemSelectedListener(this);
navigationView.setCheckedItem(R.id.nav_home);
}
@Override
public void onBackPressed() {
if (drawerLayout.isDrawerOpen(GravityCompat.START)) {
drawerLayout.closeDrawer(GravityCompat.START);
}
else {
super.onBackPressed();
}
}
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
switch (menuItem.getItemId()) {
case R.id.nav_home:
Intent intent = new Intent(fontsize.this, home.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
case R.id.nav_fontsize:
}
drawerLayout.closeDrawer(GravityCompat.START);
return true;
}
}
这是字符串
<string name="fontsize">
<b>بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيمِ</b>
\n<font size="13">bis-millahir-rahmanir-rahim</font>
\n\t\t<font size="13">In the name of God, the Most Gracious, the Most Merciful</font>
</string>
请帮助我,我非常感谢任何帮助和想法。
解决方案
这可能是因为您已经将其他字体大小设置为 13。尝试删除它。
推荐阅读
- machine-learning - keras 制作自定义损失函数
- python - 在多标头数据框中,如何选择具有标头元组值之一的列,其余为任何值?
- django - Heroku 上的 Django 应用程序:应用程序崩溃
- sql-server - 无法在 MS Access 中编辑现有表单,打开 .accdb 文件会自动打开没有功能区或菜单的表单
- react-native - 如何在 stackNavigator 屏幕内水平滑动?
- javascript - 如何使用javascript将日期字符串数组转换为字符串
- lstm - 隐藏层 LSTM Pytorch 的维度
- autosar - 是否可以为每个任务的多个组件定义一个 AUTOSAR Runnable?
- git - 与客户的 GitLab 连接的工作流程是什么?
- email - Java:通过邮件从数据库中发送许多项目