搜索栏更改文本大小

2024-02-04

我想使用搜索栏更改编辑文本的文本大小,每次关闭活动并重新打开它时,搜索栏都会自动增加文本大小,这是代码:

package com.e_orthodoxy.orthodox_prayers;
    
public class WakeupActivity extends Activity {

    private SharedPreferences prefs;
    private SeekBar seekbar;
    private EditText edittext;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_wakeup);
        
        seekbar = (SeekBar) findViewById(R.id.seekBar1);
        edittext = (EditText) findViewById(R.id.id_wakeup_txt);
        
        prefs = getPreferences(MODE_PRIVATE);
        
        float fs = prefs.getFloat("fontsize", 12);
        seekbar.setProgress((int)fs);
        edittext.setTextSize(seekbar.getProgress());
        

        seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
            
            @Override
            public void onStopTrackingTouch(SeekBar seekBar){
                prefs = getPreferences(MODE_PRIVATE);
                SharedPreferences.Editor ed = prefs.edit();
                ed.putFloat("fontsize", edittext.getTextSize());
                ed.commit();    
            }
            @Override
            public void onStartTrackingTouch(SeekBar seekBar){
                
            }
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress,
                    boolean fromUser){
                edittext.setTextSize(progress);
            }
        });
        
        
    }
    
    
    @Override
    public void onBackPressed() {
        
        Intent intent_wakeup_back = new Intent (WakeupActivity.this, DailyPrayersActivity.class);
        startActivity(intent_wakeup_back);
        finish();
    }   
}

将 setTextSize(float size) 替换为 setTextSize(int unit,float size) 并使用 TypedValue.COMPLEX_UNIT_PX 作为单位

float fs = prefs.getFloat("fontsize", 12);
seekbar.setProgress((int)fs);
//edittext.setTextSize(seekbar.getProgress());
edittext.setTextSize(TypedValue.COMPLEX_UNIT_PX,seekbar.getProgress());

别忘了进度改变:

 //edittext.setTextSize(progress);
 edittext.setTextSize(TypedValue.COMPLEX_UNIT_PX,progress);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

搜索栏更改文本大小 的相关文章